我正在创建一个 Java swing GUI,并且已格式化 JPanel 以使用 GridLayout。我需要访问网格的特定“框”(即特定坐标),但我看不到这样做的方法。
我该怎么做?
最佳答案
您不应该依赖 GUI 代码( View )来为您提供有关程序数据(模型)的信息。最好的解决方案是从一开始就“知道”哪个组件在哪里——也许您应该有一个数据结构(二维数组?)来保存组件,并在网格中添加内容时进行更新。
如果你想要一个快速且非常肮脏的修复,你可以开始玩游戏 JPanel.getComponentAt()
。不过,这需要像素坐标,因此您需要进行一些逆向工程来计算给定网格方 block 占用了多少空间。网格方 block 之间的空间is given by your GridLayout
object 。但无论如何,不推荐这样做。我只是为了完整起见才将其包括在内(因为这是对您的问题的更字面的回答)。
关于Java Swing 网格布局 : Accessing Specific Coordinate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8394296/