2
我使用擺動建立與一個JPanel裏面4個JPanels使用BorderLayout管理器的GUI:空的JPanel不來正確定位到其他JPanels
- 標籤的行
- Jbutton將 的A柱
- 顯示區域(它是擴展JPanel和無關添加到它,並且被用作一個繪圖區域的類)
- 按鈕的另一列
我的代碼如下所示:
JPanel middle = new JPanel();
middle.setLayout(new BorderLayout());
middle.add(midLabels,BorderLayout.NORTH);
middle.add(pickupButtons,BorderLayout.WEST);
middle.add(simulation,BorderLayout.CENTER);
middle.add(dropButtons,BorderLayout.EAST);
仿真面板僅僅是一個擴展的JPanel重寫的paintComponent繪製的圖像。問題是,模擬區域是在左邊,而不是在中間:
我真正想要的是:
編輯,這裏有一個例子,做我需要使用不同的佈局管理器來正確定位空JPanel?:
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame {
final static int MAXFLOORS = 8;
public Test() {
setLayout(new BorderLayout());
setTitle("Simulator");
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(500, 500);
JPanel simulation = new JPanel();
JPanel dropButtons = new JPanel();
JPanel pickupButtons = new JPanel();
pickupButtons.setLayout(new GridLayout(MAXFLOORS, 1));
dropButtons.setLayout(new GridLayout(MAXFLOORS, 1));
setLayout(new BorderLayout());
add(simulation,BorderLayout.CENTER);
add(dropButtons,BorderLayout.EAST);
add(pickupButtons,BorderLayout.WEST);
for (int i = MAXFLOORS; i != 0; i--) {
JButton pb = new JButton("F" + i);
dropButtons.add(pb);
JButton db = new JButton("F" + i);
dropButtons.add(db);
}
repaint();
}
public static void main(String[] args) {
new Test();
}
}
爲了更快得到更好的幫助,請發佈[SSCCE](http://sscce.org/)。順便說一句 - 你有問題嗎? – 2012-04-09 20:35:46
隨機問題,你有沒有嘗試改變你添加組件的順序? – 2012-04-09 20:43:29
看起來您可能會(無意中)將'pickup按鈕'添加到'dropButtons'。 – trashgod 2012-04-09 20:45:18