我需要在 GridBagLayout 网格的中心放置一个圆圈。如何找到当前单元格的宽度和高度?
int center = (int) ( ((double) BoardSize / Num/2) - ((double) size/2.0) );
g.fillOval(center, center, size, size);
目前我正在使用包含框架的大小(BroadSize),但我想向 GridBag 添加其他元素,这会让人感到困惑。
我需要在 GridBagLayout 网格的中心放置一个圆圈。如何找到当前单元格的宽度和高度?
int center = (int) ( ((double) BoardSize / Num/2) - ((double) size/2.0) );
g.fillOval(center, center, size, size);
目前我正在使用包含框架的大小(BroadSize),但我想向 GridBag 添加其他元素,这会让人感到困惑。
您无法获得单元格大小。
您需要使用一个适当的组件,该组件将在可用空间中居中。您可能需要覆盖自定义组件的setAlignmentX()
和setAlignmentY()
值。当然,这种方法也假设您已经getPreferredSize()
正确地覆盖了组件的方法。
最简单的方法是使用带有图标的 JLabel。请参阅使用形状来轻松完成此操作。