J
Jörn
Gast
Hallo Java-Freunde!
Habe mir eine graphische Oberfläche mit einem CardLayout aufgebaut. Insgesamt sind es vier Karten. Auf jeder Karte sollen verschiedene Objekte wie JLabels und JTables angeordnet werden. Diese werden über das GridBagLayout zugeordnet.
Kleiner Quellcode-Auszug:
Container c = getContentPane();
CardLayout KartenLayout = new CardLayout();
c.setLayout(KartenLayout);
JPanel Karte1 = new Panel();
JPanel Karte2 = new Panel();
JPanel Karte3 = new Panel();
JPanel Karte4 = new Panel();
c.add("Karte1", Karte1);
c.add("Karte2", Karte2);
c.add("Karte3", Karte3);
c.add("Karte4", Karte4);
GridBagLayout GBL = new GridBagLayout();
static void addComponent(Container cont, GridBagLayout GBL, Component c, int x, int y, int width, int height, double weightx. double weighty) (
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = width;
gbc.gridheight = height;
gbc.weightx = weightx;
gbc.weighty = weighty;
GBL.setConstraints(c, gbc);
cont.add(c);
(
addComponent(Karte1, GBL, new JLabel("Sortiert nach Typ-Bezeichnung"), 0, 0, 2, 1, 0, 0);
addComponent(Karte1, GBL, new JScrollPane(Tabelle1), 0, 1, 2, 1, 1.0, 1.0);
addComponent/Karte1, GBL, new JLabel("Sortiert nach Beschreibungen."), 0, 2, 3, 1, 0, 0);
addComponent(Karte1, GBL, new JScrollPane(Tabelle2), 0, 3, 3, 1, 1.0, 1.0);
So weit klappt das auch alles, alle Objekte werden auf den einzelnen Karten angezeigt. Das Problem ist nur ziemlich chaotisch. Die vier oben stehenden addComponents als Beispiel aus meinem Quellcode. Als ich noch kein CardLayout benutzte, habe ich alles nur über ein GridBagLayout dargestellt. Da wurden die Objekte in ihrer Lage alle richtig dargestellt.
Liegt das vielleicht am JPanel? Oder vertragen sich CardLayout und GridBagLayout nicht? Oder sind die Zahlen-Variablen bei den addComponents irgendwie falsch? Darin bin ich leider kein Meistrer. Nur durch Zufall hat das irgendwie bei mir hingehauen.
Alle vier Objekte sollen bei mir untereinander dargestellt werden. Jetzt liegen sie zudem auch nebeneinander. Sie sollen eben den ganzen JFrame ausfüllen und auch keine Lücken hinterlassen.
Vielliecht kann mir ja jemand weiter helfen.
Dank im voraus.
Gruss Jörn
Habe mir eine graphische Oberfläche mit einem CardLayout aufgebaut. Insgesamt sind es vier Karten. Auf jeder Karte sollen verschiedene Objekte wie JLabels und JTables angeordnet werden. Diese werden über das GridBagLayout zugeordnet.
Kleiner Quellcode-Auszug:
Container c = getContentPane();
CardLayout KartenLayout = new CardLayout();
c.setLayout(KartenLayout);
JPanel Karte1 = new Panel();
JPanel Karte2 = new Panel();
JPanel Karte3 = new Panel();
JPanel Karte4 = new Panel();
c.add("Karte1", Karte1);
c.add("Karte2", Karte2);
c.add("Karte3", Karte3);
c.add("Karte4", Karte4);
GridBagLayout GBL = new GridBagLayout();
static void addComponent(Container cont, GridBagLayout GBL, Component c, int x, int y, int width, int height, double weightx. double weighty) (
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill = GridBagConstraints();
gbc.gridx = x;
gbc.gridy = y;
gbc.gridwidth = width;
gbc.gridheight = height;
gbc.weightx = weightx;
gbc.weighty = weighty;
GBL.setConstraints(c, gbc);
cont.add(c);
(
addComponent(Karte1, GBL, new JLabel("Sortiert nach Typ-Bezeichnung"), 0, 0, 2, 1, 0, 0);
addComponent(Karte1, GBL, new JScrollPane(Tabelle1), 0, 1, 2, 1, 1.0, 1.0);
addComponent/Karte1, GBL, new JLabel("Sortiert nach Beschreibungen."), 0, 2, 3, 1, 0, 0);
addComponent(Karte1, GBL, new JScrollPane(Tabelle2), 0, 3, 3, 1, 1.0, 1.0);
So weit klappt das auch alles, alle Objekte werden auf den einzelnen Karten angezeigt. Das Problem ist nur ziemlich chaotisch. Die vier oben stehenden addComponents als Beispiel aus meinem Quellcode. Als ich noch kein CardLayout benutzte, habe ich alles nur über ein GridBagLayout dargestellt. Da wurden die Objekte in ihrer Lage alle richtig dargestellt.
Liegt das vielleicht am JPanel? Oder vertragen sich CardLayout und GridBagLayout nicht? Oder sind die Zahlen-Variablen bei den addComponents irgendwie falsch? Darin bin ich leider kein Meistrer. Nur durch Zufall hat das irgendwie bei mir hingehauen.
Alle vier Objekte sollen bei mir untereinander dargestellt werden. Jetzt liegen sie zudem auch nebeneinander. Sie sollen eben den ganzen JFrame ausfüllen und auch keine Lücken hinterlassen.
Vielliecht kann mir ja jemand weiter helfen.
Dank im voraus.
Gruss Jörn