【发布时间】:2012-11-22 20:20:05
【问题描述】:
我需要显示棋盘。我有一个扩展 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或右边),我不知道如何修复它。
有什么帮助吗?提前致谢!
【问题讨论】:
标签: java swing layout resize jpanel