rantanohneplan
Grünschnabel
Hallo!
Ich versuche gerade eine Swing-GUI mit dem GridBagLayout zu entwerfen. Ich habe das jetzt auch genauso hinbekommen wie ich es wollte. Allerdings bin ich dann über ein Problem gestolpert. Nach dem Laden des Programms sieht es gut aus. Wenn ich allerdings die Größe des Fensters ändere, dann verändert sich die Größe der Panels in die falsche Richtung. Ich habe ein paar Screenshots gemacht um das Problem zu verdeutlichen.
Bei dem Screenshot "orginal.png" handelt es sich um das Programm direkt nach dem Laden mit den richtigen Größen.
Der Screenshot "anderegröße.png" zeigt das Programm nach dem Verkleinern des Fensters. Wie man sieht sind der blaue und der grüne Bereich einfach im Nichts verschwunden und der schwarze und der weiße Bereich sind höher geworden. Dabei soll eigentlich alles einfach nur kleiner werden...
Hat jemand ne Idee wo der Fehler liegt?
Mein Code sieht wie folgt aus:
Ich versuche gerade eine Swing-GUI mit dem GridBagLayout zu entwerfen. Ich habe das jetzt auch genauso hinbekommen wie ich es wollte. Allerdings bin ich dann über ein Problem gestolpert. Nach dem Laden des Programms sieht es gut aus. Wenn ich allerdings die Größe des Fensters ändere, dann verändert sich die Größe der Panels in die falsche Richtung. Ich habe ein paar Screenshots gemacht um das Problem zu verdeutlichen.
Bei dem Screenshot "orginal.png" handelt es sich um das Programm direkt nach dem Laden mit den richtigen Größen.
Der Screenshot "anderegröße.png" zeigt das Programm nach dem Verkleinern des Fensters. Wie man sieht sind der blaue und der grüne Bereich einfach im Nichts verschwunden und der schwarze und der weiße Bereich sind höher geworden. Dabei soll eigentlich alles einfach nur kleiner werden...
Hat jemand ne Idee wo der Fehler liegt?
Mein Code sieht wie folgt aus:
Code:
Container container;
JPanel panel;
GridBagConstraints cons;
JMenuBar menubar;
JMenu file;
JPanel toolbar;
JPanel navi;
JPanel editor;
JPanel buttons;
JPanel statusbar;
public PLConfiguratorFrame()
{
Toolkit toolkit = Toolkit.getDefaultToolkit();
container = getContentPane();
panel = new JPanel(new GridBagLayout());
cons = new GridBagConstraints();
menubar = new JMenuBar();
file = new JMenu("File");
menubar.add(file);
setJMenuBar(menubar);
toolbar = new JPanel();
toolbar.setBackground(new Color(255, 255, 255));
toolbar.setPreferredSize(new Dimension((int) (toolkit.getScreenSize().getWidth()),
(int) (toolkit.getScreenSize().getHeight()*0.05)));
toolbar.setMinimumSize(new Dimension((int) (toolkit.getScreenSize().getWidth()),
(int) (toolkit.getScreenSize().getHeight()*0.05)));
cons.fill = GridBagConstraints.HORIZONTAL;
cons.gridx = 0;
cons.gridy = 0;
cons.gridwidth = 3;
cons.gridheight = 1;
panel.add(toolbar, cons);
navi = new JPanel();
navi.setBackground(new Color(0, 0, 0));
navi.setPreferredSize(new Dimension((int) (toolkit.getScreenSize().getWidth()*0.15),
(int) (toolkit.getScreenSize().getHeight()*0.85)));
navi.setMinimumSize(new Dimension((int) (toolkit.getScreenSize().getWidth()*0.15),
(int) (toolkit.getScreenSize().getHeight()*0.85)));
cons.fill = GridBagConstraints.VERTICAL;
cons.gridx = 0;
cons.gridy = 1;
cons.gridwidth = 1;
cons.gridheight = 2;
panel.add(navi, cons);
editor = new JPanel();
editor.setBackground(new Color(200, 0, 0));
editor.setPreferredSize(new Dimension((int) (toolkit.getScreenSize().getWidth()*0.85),
(int) (toolkit.getScreenSize().getHeight()*0.8)));
editor.setMinimumSize(new Dimension((int) (toolkit.getScreenSize().getWidth()*0.85),
(int) (toolkit.getScreenSize().getHeight()*0.8)));
cons.fill = GridBagConstraints.HORIZONTAL;
cons.gridx = 1;
cons.gridy = 1;
cons.gridwidth = 2;
cons.gridheight = 1;
panel.add(editor, cons);
buttons = new JPanel();
buttons.setBackground(new Color(0, 200, 0));
buttons.setPreferredSize(new Dimension((int) (toolkit.getScreenSize().getWidth()*0.85),
(int) (toolkit.getScreenSize().getHeight()*0.05)));
buttons.setMinimumSize(new Dimension((int) (toolkit.getScreenSize().getWidth()*0.85),
(int) (toolkit.getScreenSize().getHeight()*0.05)));
cons.fill = GridBagConstraints.HORIZONTAL;
cons.gridx = 1;
cons.gridy = 2;
cons.gridwidth = 2;
cons.gridheight = 1;
panel.add(buttons, cons);
statusbar = new JPanel();
statusbar.setBackground(new Color(0, 0, 200));
statusbar.setPreferredSize(new Dimension((int) (toolkit.getScreenSize().getWidth()*0.99),
(int) (toolkit.getScreenSize().getHeight()*0.03)));
statusbar.setMinimumSize(new Dimension((int) (toolkit.getScreenSize().getWidth()*0.99),
(int) (toolkit.getScreenSize().getHeight()*0.03)));
cons.fill = GridBagConstraints.HORIZONTAL;
cons.gridx = 0;
cons.gridy = 3;
cons.gridwidth = 3;
cons.gridheight = 1;
panel.add(statusbar, cons);
container.add(BorderLayout.CENTER, panel);
}