JButton应该如何跟踪它在GridLayout中的位置?

时间:2014-03-31 13:08:12

标签: java swing jbutton grid-layout

我有一个名为cell的类,它扩展了JButton。然后我在gridlayout(4,4,3,3)中有16个Jbuttons。是否有可能让每个单元格跟踪它在gridlayout中的位置(我需要知道一个单击的JButton是否接近另一个特定的JButton)。

2 个答案:

答案 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时分配这些gridxgridy值。例如,以下内容创建了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是一个幻灯片益智游戏)我不能将按钮向左移动   它是第一次被移动后的底部,所以我知道我会   尝试另一种方式,每个按钮跟踪其位置