如何获取GridBagLayout的单元格大小

时间:2013-10-24 15:55:06

标签: java gridbaglayout

我需要在GridBagLayout网格的中心放置一个圆圈。如何找到当前的单元格宽度和高度?

int center = (int) (  ((double) BoardSize / Num/2) - ((double) size/2.0) );
g.fillOval(center, center, size, size);

目前我正在使用包含Frame(BroadSize)的大小,但我想在GridBag中添加其他元素会让人感到困惑。

1 个答案:

答案 0 :(得分:0)

您无法获得单元格大小。

您需要使用适当的组件,将其自身置于可用空间中。您可能需要覆盖自定义组件的setAlignmentX()setAlignmentY()值。当然,这种方法也假设您已正确覆盖了组件的getPreferredSize()方法。

最简单的方法是使用带有Icon的JLabel。请参阅Playing With Shapes以获取执行此操作的简便方法。