我有一个关于 Java 的问题JFrame
,特别是关于 Java 的问题。假设我有一个JFrame
我正在使用的GridLayout
. 假设我在JButton
s 中添加了 s,JFrame
我怎样才能使用它的位置访问我想要的那个(通过位置,我的意思是 ax 和 ay,用于定义网格上的确切位置)。例如,我尝试了几种方法,getComponentAt(int x, int y)
并且发现这些方法在与 结合使用时不能按预期工作GridLayout
,或者至少在我的情况下不能按预期工作。所以我尝试使用getComponent()
,这似乎很好。
对我来说似乎在正确轨道上的最新方法是(假设我有 aJFrame
有GridLayout
7 行和 7 列,x 作为列,y 作为行):
public JButton getButtonByXAndY(int x, int y) {
return (JButton) this.getContentPane().getComponent((y-1) * 7 + x);
}
图片 http://www.freeimagehosting.net/newuploads/9d6hq.jpg
使用上面的方法,假设我想获取JButton
at (4, 4),即 中的第 25 个 JButton JFrame
,我首先会索引前 21 个按钮,然后再添加 4 个,最后访问我想要的 JButton。问题是这仅在理论上起作用。有任何想法吗?
PS 很抱歉链接到外部网站,但堆栈溢出不允许我上传图片,因为我没有所需的声誉。