Aunque es posible hacerlo sin un controlador de disposici�n, se deber�a utilizar un controlador disposici�n siempre que sea posible. Los controladores de disposici�n hacen m�s sencillo el redimensionado de un contenedor y se ajustan al 'Aspecto y Comportamiendo' dependientes de la plataforma y los diferentes tama�os de las fuentes. Tambi�n pueden ser reutilizados f�cilmente por otros contenedores y otros programas.
Si un contenedor personalizado no ser� reutilizado ni redimensionado, y controla normalmente los factores dependientes del sistema como el tama�o de las fuentes y la apariencia de los componentes (implementando sus propios controles si fuera necesario), entonces, el posicionamiento absoluto podr�a tener sentido.
Los Desktop panes, que contienen frames internos, est�n en esta categor�a. El tama�o y posici�n de los frames internos no depende directamente de los tama�o del desktop pane. El programador determina el tama�o y situaci�n iniciales del frame interno dentro del desktop pane, y luego el usuario puede mover o redimensionar los marcos. En esta situaci�n un controladores de distribuci�n es innecesario.
Otra situaci�n en que el posicionamiento absoluto podr�a tener sentido es un contenedor personalizado que realice c�lculos de tama�o y posici�n que son particulares del contenedor y que quiz�s requieran un conocimiento especializado del estado del contenedor. Esta es la situaci�n de los split panes.
Aqu� tenemos un applet que muestra una ventana cuyo panel de contenido usa posicionamiento absoluto
Esta es una imagen del GUI del Applet. Para ejecutarlo pulsa sobre ella y el applet aparecer� en una nueva ventana del navegador.
Abajo podemos ver las declaraciones de las variables y la implementaci�n del constructor de la clase window. Aqu� puedes ver el programa completo. El programa se puede ejecutar como un applet, con la ayuda de AppletButton, o como una aplicaci�n.
public class NoneWindow extends JFrame { . . . private boolean laidOut = false; private JButton b1, b2, b3; public NoneWindow() { Container contentPane = getContentPane(); contentPane.setLayout(null); b1 = new JButton("one"); contentPane.add(b1); b2 = new JButton("two"); contentPane.add(b2); b3 = new JButton("three"); contentPane.add(b3); Insets insets = contentPane.getInsets(); b1.setBounds(25 + insets.left, 5 + insets.top, 75, 20); b2.setBounds(55 + insets.left, 35 + insets.top, 75, 20); b3.setBounds(150 + insets.left, 15 + insets.top, 75, 30); . . . } . . . }