Java JButton应该如何跟踪其在GridLayout中的位置?
我有一个名为cell的类,它扩展了JButton。然后在gridlayout中有16个JButton(4,4,3,3)。是否可以让每个单元格跟踪其在gridlayout中的位置(我需要知道一个单击的JButton是否靠近另一个特定的JButton)。您只需创建一个类,扩展JButton,并为网格中的位置添加两个字段即可。创建一个为这些字段赋值的新构造函数(或setter)和两个将返回这些字段的简单getter 例如:Java JButton应该如何跟踪其在GridLayout中的位置?,java,swing,jbutton,grid-layout,Java,Swing,Jbutton,Grid Layout,我有一个名为cell的类,它扩展了JButton。然后在gridlayout中有16个JButton(4,4,3,3)。是否可以让每个单元格跟踪其在gridlayout中的位置(我需要知道一个单击的JButton是否靠近另一个特定的JButton)。您只需创建一个类,扩展JButton,并为网格中的位置添加两个字段即可。创建一个为这些字段赋值的新构造函数(或setter)和两个将返回这些字段的简单getter 例如: class MyJButton extends JButton {
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);
}
}
for(int i=0;i<4;i++){
对于(int j=0;j<4;j++){
MyJButton btn=新的MyJButton(i+“,”+j,i,j);
//在此处配置您的按钮。。。
面板。添加(btn);
}
}
我将它们存储在一个列表中,但问题是,(这个按钮和
gridlaoyout是一款幻灯片益智游戏)我无法向左移动按钮
在它第一次被移动后,我想我会
尝试另一种方法,让每个按钮都跟踪其位置
- 使用
- 从添加的ActionListener更改
- 我将使用
和JToggleButton
进行益智游戏ItemListener