Das sogenannte NullLayout ist im eigentlichem Sinne überhaupt kein Layout. Das NullLayout ist vielmehr das Fehlen eines Layout-Managers. Die Verwendung des NullLayouts sollte nach Möglichkeit vermieden werden, da für jede Komponente die Position und Größe manuell gesetzt werden muss. Dabei müssen alle Plattformen betrachtet werden und die Möglichkeit verschiedener Fonts betrachtet werden, ... . Eine kleine Änderung der Oberfläche kann es erforderlich machen, dass alle in diesem Layout befindlichen Komponenten angepasst werden müssen.
Das NullLayout wird durch
Container#setLayout(null)
gesetzt. Die Größe und Postion der enthaltenen Komponenten werden mit den
Methoden
Component#setLocation(int x, int y) Component#setLocation(Point p) Component#setSize(int width, int height) Component#setSize(Dimension d) Component#setBounds(int x, int y, int width, int height) Component#setBounds(Rectangle r)
gesetzt.
Desweiteren kann der Container die benötigte Größe nicht bestimmen und muss "von Hand" gesetzt werden.
Im nach Beispiel werden einige Komponenten mithilfe des Null-Layouts in einem JFrame plaziert.
mport javax.swing.*; public class MyFrame extends JFrame { public static void main(String[] args){ new MyFrame(); } public MyFrame(){ JPanel panel = new JPanel(); panel.setLayout(null); JLabel label; JTextField textField; JButton button; panel.add(label = new JLabel("Label")); panel.add(textField = new JTextField()); panel.add(button = new JButton("Button")); label.setBounds(10,20,70,30); textField.setLocation(70,30); textField.setSize(250,50); textField.setText("TextField"); button.setBounds(160,80,100,200); add(panel); setSize(400,400); setVisible(true); } }
Das Ergebnis sieht folgendermaßen aus: