我正在嘗試爲我正在處理的項目繪製一個側欄。我選擇使用GridBagLayout,因爲我對BoxLayout的限制感到沮喪。有人可以幫助解釋我做錯了什麼。我想要的是側邊欄包含兩個JPanel。我將代碼放在邊欄的一半而不是頂部。有人能解釋我在這裏想念什麼嗎?一個帶有GridBagLayout的java側邊欄
JPanel sideBar = new JPanel();
sideBar.setBounds(0, 0, 180, (int)this.getBounds().getHeight());
sideBar.setLayout(new GridBagLayout());
JPanel optionBar = new JPanel();
optionBar.setBorder(BorderFactory.createTitledBorder("Box1"));
optionBar.setLayout(new GridBagLayout());
JPanel buttonBar = new JPanel();
buttonBar.setBorder(BorderFactory.createTitledBorder("Options"));
buttonBar.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
c.fill = GridBagConstraints.HORIZONTAL;
c.gridx = 0;
c.ipady = 5;
c.insets = new Insets(10,0,0,0);
JButton simplify;
simplify = new JButton("Open");
simplify.addActionListener(this.listener);
c.gridy = 0;
buttonBar.add(simplify, c);
JButton mergeButton;
mergeButton = new JButton("Close");
mergeButton.addActionListener(this.listener);
c.gridy = 1;
buttonBar.add(mergeButton, c);
JButton splitButton;
splitButton = new JButton("Merge");
splitButton.addActionListener(this.listener);
c.gridy = 2;
buttonBar.add(splitButton, c);
c.insets = new Insets(0,5,5,5);
c.gridy = 0;
sideBar.add(optionBar, c);
c.gridy = 1;
c.ipadx = 70;
sideBar.add(buttonBar, c);
return(sideBar);