创建JButton的永久隐藏值,同时JButton上的文本发生更改

时间:2015-05-01 11:52:44

标签: java arrays jbutton

我有一个包含64个JButton的数组,并希望为它们提供所有隐藏的共同序列值,这些值必须保持不变。 JButton上的文字将根据选择的坐标而改变。

有办法做到这一点吗?

这是我将文字放到按钮上的代码:

for (int j = 0; j < pieces.length; j++){

        for (int i = 0; i < pieces[j].length; i++){
            if (pieces[i][j] == null)
                contentPane.add(new JButton(" "));
            else {
                p = pieces[i][j].getChar();
                System.out.println(i + ","+j+","+p);
                contentPane.add(new JButton (Character.toString(p)));
            }
        }
    }

1 个答案:

答案 0 :(得分:1)

解决方案#1:在每个按钮上调用setName。组件的名称是AWT或Swing根本不使用的任意字符串,这意味着您可以自由地使用它。

解决方案#2:由于你有64个按钮,你可以保留一个单独的64个元素的数据对象数组。

解决方案#3:您可以使用putClientProperty将任意数据附加到任何JComponent。这不是一个好的解决方案,因为您的代码将更难理解并且可以更容易地破解。 (其他地方的其他代码必须&#34;只知道&#34;寻找特定的客户资产,并且必须知道&#34;它的类型是什么。)

解决方案#4:子类JButton并将坐标数据添加到子类。这不是一个好的设计,因为你不是在创造一种新的按钮组件。有更好的方法可以将数据与组件相关联。