|
Zum Positionieren von Elementen auf der GUI gibt es in Java Unterstützung von Layoutmanagern.
Im folgenden Beispiel wird ein Frame in ein BorderLayout aufgeteilt. Dieses besteht aus 5 Teilen (NORTH, EAST, SOUTH, WEST und CENTER).
Darauf werden ein Panel und 4 Labels positioniert. Auf dem Panel werden 2 Buttons im GridLayout positioniert.
Also innerhalb einer Tabelle, die aus einer Spalte mit 2 Zeilen besteht.
Hier der Quellcode zum oben beschiebenen Frame:
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Gui2 extends JFrame {
private JLabel l1, l2, l3, l4;
public Gui2() {
getContentPane().setBackground(Color.ORANGE); // Framehintergrundfarbe
// Framelayout North, South ... mit 9 Pixel Zellenabstand
setLayout(new BorderLayout(9, 9));
// Labels erzeugen
l1 = new JLabel("Text Label 1");
l1.setHorizontalAlignment(JLabel.CENTER);
l2 = new JLabel("Text Label 2");
l3 = new JLabel("Text Label 3");
l4 = new JLabel("Text Label 4");
l4.setHorizontalAlignment(JLabel.CENTER);
// Panelklasse instanziieren
Gui2Panel panel = new Gui2Panel();
// Frame mit Labels und Panel bestuecken
getContentPane().add("North", l1);
getContentPane().add("West", l2);
getContentPane().add("Center", panel);
getContentPane().add("East", l3);
getContentPane().add("South", l4);
pack(); // Frame auf benötigte Größe begrenzen
setVisible(true); // Frame sichtbar machen
}
}
Klasse mit einzubindendem Panel, auf dem 2 Buttons plaziert sind
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Gui2Panel extends JPanel{
JButton b1=new JButton("Button 1");
JButton b2=new JButton("Button 2");
public Gui2Panel() {
setLayout(new GridLayout(2, 1));
b1 = new JButton("Button 1");
b2 = new JButton("Button 2");
add(b1);
add(b2);
}
}
Testklasse zum Starten der Anwendung
public class Test {
public static void main(String[] args) {
Gui2 g = new Gui2();
}
}
|