チェス盤を表示する必要があります。JPanel を拡張する BoardPanel クラスと、BoardPanel を含む GamePanel (JPanel も拡張) クラスがあります。GamePanel はすべてのアプリケーション フレームを埋めます。
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の左上隅にチェス盤が表示されてしまい(空きスペースはすべてbotかrightに表示されてしまいます)、直し方がわかりません。
何か助けはありますか?前もって感謝します!