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

标签 java swing jbutton grid-layout

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

最佳答案

您可以简单地创建一个类来扩展 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);
    }
}

关于java - JButton 应该如何跟踪它在 GridLayout 中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22762395/

相关文章:

java - Java 是否有按字典顺序排列列表(而不是它们的元素)的函数?

java - 如何在java swing中触发keyReleased事件

Java Swing : A list of all UIDefaults properties

java - 如何在扩展 JButton 类时扩展 actionPerformed 方法

java - 更改 JButton 的形状

Java在鼠标悬停时在按钮上添加按钮

java.lang.IllegalStateException : Action Bar Tab must have a Callback 错误

java - 如何从 XMLSignature 获取证书链(根证书和中间证书)

java - 在 Java 中使用 finalize() 是否合适?

java - 在任务栏中显示 JDialog 不起作用