我有一个名为cell的类,它扩展了JButton。然后我在gridlayout(4,4,3,3)中有16个Jbuttons。是否有可能让每个单元格跟踪它在gridlayout中的位置(我需要知道一个单击的JButton是否接近另一个特定的JButton)。
答案 0 :(得分:2)
您可以简单地创建一个扩展JButton
的类,并为网格中的位置添加两个字段。创建一个为这些字段分配值的新构造函数(或setter),以及两个将返回它们的简单getter。
示例:
class MyJButton extends JButton {
private int gridx;
private int gridy;
public MyJButton(String label, int gridx, int gridy) {
super(label);
this.gridx = gridx;
this.gridy = gridy;
}
public int getGridx() {
return gridx;
}
public int getGridy() {
return gridy;
}
}
您可以在构建GUI时分配这些gridx
,gridy
值。例如,以下内容创建了16个按钮,标记了它们在网格中的位置:
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
MyJButton btn = new MyJButton(i + "," + j, i, j);
//Configure your button here...
panel.add(btn);
}
}
答案 1 :(得分:1)
我将它们存储在List中,但问题是,(这个按钮和 gridlaoyout是一个幻灯片益智游戏)我不能将按钮向左移动 它是第一次被移动后的底部,所以我知道我会 尝试另一种方式,每个按钮跟踪其位置
从添加的ActionListener
我将JToggleButton
与ItemListener
用于益智游戏