我有一个包含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)));
}
}
}
答案 0 :(得分:1)
解决方案#1:在每个按钮上调用setName。组件的名称是AWT或Swing根本不使用的任意字符串,这意味着您可以自由地使用它。
解决方案#2:由于你有64个按钮,你可以保留一个单独的64个元素的数据对象数组。
解决方案#3:您可以使用putClientProperty将任意数据附加到任何JComponent。这不是一个好的解决方案,因为您的代码将更难理解并且可以更容易地破解。 (其他地方的其他代码必须&#34;只知道&#34;寻找特定的客户资产,并且必须知道&#34;它的类型是什么。)
解决方案#4:子类JButton并将坐标数据添加到子类。这不是一个好的设计,因为你不是在创造一种新的按钮组件。有更好的方法可以将数据与组件相关联。