import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.*;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.Border;
public class Gui implements ComponentListener {
private JPanel leftPanel, rightPanel;
public Gui(){
JFrame f = new JFrame();
f.addComponentListener(this);
f.setSize(800, 600);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationByPlatform(true);
// Panel erzeugen
JPanel northPanel = new JPanel();
JPanel centerPanel = new JPanel();
leftPanel = new JPanel();
JPanel middlePanel = new JPanel();
rightPanel = new JPanel();
JPanel innerRightPanel = new JPanel();
// Obere und untere Panel hinzufügen
f.add(BorderLayout.CENTER, centerPanel);
f.add(BorderLayout.NORTH, northPanel);
Border border = BorderFactory.createLineBorder(Color.RED);
leftPanel.setBorder(border);
middlePanel.setBorder(border);
rightPanel.setBorder(border);
northPanel.setLayout(new GridBagLayout());
// 3 Panel beim oberen Panel hinzufügen
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.BOTH;
c.weightx=0.2;
c.gridx = 0;
c.gridy = 0;
northPanel.add(leftPanel, c);
c.weightx=0.6;
c.gridx = 1;
c.gridy = 0;
northPanel.add(middlePanel, c);
c.weightx=0.2;
c.gridx = 2;
c.gridy = 0;
northPanel.add(rightPanel, c);
JButton bigButton1 = new JButton("BigButton1");
JButton bigButton2 = new JButton("BigButton2");
bigButton1.setPreferredSize(new Dimension(100,100));
bigButton2.setPreferredSize(new Dimension(100,100));
middlePanel.add(bigButton1);
middlePanel.add(bigButton2);
JButton smallButton1 = new JButton("SmallButton1");
JButton smallButton2 = new JButton("SmallButton2");
rightPanel.setLayout(new BorderLayout());
rightPanel.add(BorderLayout.SOUTH, innerRightPanel);
innerRightPanel.add(smallButton1);
innerRightPanel.add(smallButton2);
adjustPanel();
f.setVisible(true);
}
public void componentHidden(ComponentEvent e) {
}
public void componentShown(ComponentEvent e) {
}
public void componentMoved(ComponentEvent e) {
}
public void componentResized(ComponentEvent e) {
adjustPanel();
}
private void adjustPanel() {
leftPanel.setPreferredSize(rightPanel.getPreferredSize());
}
public static void main(String[] args) {
new Gui();
}
}