我正在使用Swing和AWT(用於偵聽器)來製作一個小程序。我有一個關於獲取我的JPanel(名爲Chess的類)大小的問題。 我的佈局:Java,BorderLayout.CENTER,獲取JPanel的寬度和高度
public class Main extends JFrame implements MouseListener, ActionListener{
Chess chessPanel = new Chess();
JButton newGameButton = new JButton ("New Game");
JButton loadGameButton = new JButton ("Load Game");
JButton saveGameButton = new JButton ("Save Game");
JButton exitButton = new JButton ("Exit");
public static void main (String [] args) {
new Main();
}
Main() {
super ("Chess");
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
setSize(dim);
setLocation(0,0);
setUndecorated(true);
chessPanel.addMouseListener(this);
add(chessPanel, BorderLayout.CENTER);
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout());
newGameButton.addActionListener(this);
loadGameButton.addActionListener(this);
saveGameButton.addActionListener(this);
exitButton.addActionListener(this);
buttonPanel.add(newGameButton);
buttonPanel.add(loadGameButton);
buttonPanel.add(saveGameButton);
buttonPanel.add(exitButton);
add(buttonPanel, BorderLayout.SOUTH);
setVisible(true);
}
// ... Code ...
}
你可以通過代碼中看到的,我有一個的JPanel的中心,這需要幾乎所有的屏幕。在底部我有另一個JPanel(SOUTH),它有一排按鈕。
我需要的是中心中的JPanel所需的大小。當我調用從JPanel繼承的getWidth(),getHeight()或getBounds()方法時,由於BorderLayout,它們都返回0。 任何想法如何獲得真正的價值?
PS:屏幕總是佔用整個屏幕,並且永遠不會調整大小,如果有幫助的話。
@Hidde:歡迎您! –