Java Swing Gridlayout:访问特定坐标

时间:2011-12-06 01:37:25

标签: java swing jpanel layout-manager grid-layout

我正在创建一个Java swing GUI,我已经格式化了一个JPanel来使用GridLayout。我需要访问网格的特定“框”(即特定坐标),但我看不到这样做的方法。

我该怎么做?

2 个答案:

答案 0 :(得分:3)

您不应该依赖GUI代码(视图)来为您提供有关程序数据(模型)的信息。最好的解决方案是"知道"哪个组件从一开始就在哪里 - 也许你应该拥有一个数据结构(2D数组?)来保存组件,并且只要有什么东西被添加到网格中就会更新。

如果你想要一个快速而又非常脏的修复,你可以开始用JPanel.getComponentAt()玩游戏。这需要像素坐标,因此您需要进行一些逆向工程来确定给定网格方占用多少空间。网格方格is given by your GridLayout object之间的空格。但这不是不推荐。我只是为了完整性而将它包括在内(因为它对你的问题的回答更直接)。

答案 1 :(得分:1)

GridLayout中,“容器被分成相等大小的矩形。”您可以在要显示为空的位置添加空的透明组件,例如new JLabel("")。另请参阅GridBagLayoutUsing Layout Managers

相关问题