我需要顯示棋盤。我有一個BoardPanel類,它擴展了包含BoardPanel的JPanel和GamePanel(也擴展了JPanel)類。 GamePanel填充所有的應用程序框架。如何以動態大小居中JPanel
我希望BoardPanel始終是一個大小等於GamePanel寬度和高度最小值的正方形(如果GamePanel的寬度大於高度,那麼左右兩邊應該有空白區域,如果它較小,則應該有空白區域在頂部和底部)。 BoardPanel應顯示在父面板的中心也很重要。
我寫了某事像這樣:
public GamePanel() {
setLayout(new BorderLayout(0, 0));
boardPanel = new BoardPanel(...);
this.add(boardPanel, BorderLayout.CENTER);
...
}
和BoardPanel:
public void paintComponent(Graphics g) {
super.paintComponent(g);
int size = Math.min(this.getParent().getHeight(), this.getParent().getWidth());
this.setSize(size, size);
...
}
它會調整好,但棋盤總是在的GamePanel的左上角顯示(顯示所有的空白處在機器人或權利),我不知道如何解決它。
任何幫助?提前致謝!
1非常好的例子 –
@DavidKroukamp關於優選尺寸非常好的建議。當我注意到你在55分鐘前說過這個消息時,我「正要說出同樣的話」。 :) –
非常感謝。我完美的工作。 – aerion