我需要在GridBagLayout网格的中心放置一个圆圈。如何找到当前的单元格宽度和高度?
int center = (int) ( ((double) BoardSize / Num/2) - ((double) size/2.0) );
g.fillOval(center, center, size, size);
目前我正在使用包含Frame(BroadSize)的大小,但我想在GridBag中添加其他元素会让人感到困惑。
答案 0 :(得分:0)
您无法获得单元格大小。
您需要使用适当的组件,将其自身置于可用空间中。您可能需要覆盖自定义组件的setAlignmentX()
和setAlignmentY()
值。当然,这种方法也假设您已正确覆盖了组件的getPreferredSize()
方法。
最简单的方法是使用带有Icon的JLabel。请参阅Playing With Shapes以获取执行此操作的简便方法。