我现在正在一个项目上,我正在尝试一些新代码来提高程序效率。我在想一个ArrayList
“骰子”,它将包含一些按钮(应该是骰子)。例如,如果我以array.add(die1)
为例,那么我可以引用数组中的对象而不是实际的按钮。
例如:我可以将die1的文本设置为die1.setText("");
,我也想直接对数组中的对象进行设置,以便可以使用循环,例如array.get(i).setText("")
;
但这是行不通的,这很奇怪。如果我做array.get(0).getClass()
,它说javax.Swing.JButton
似乎是正确的。
Java 11
ArrayList dice = new ArrayList<JButton>();
private void die1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (die1.getBackground() == Color.red) {
dice.remove(dice.indexOf(die1));
die1.setBackground(Color.green);
}
else {
dice.add(die1);
die1.setBackground(Color.red);
}
}
private void btnRollActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
for (int i = 0; i < dice.size(); i++) {
int random = roll();
dice.get(i).setText(""+random); //This displays as error; uncompilable
}
}
预期:正常工作。 但是自然无法编译并崩溃。
答案 0 :(得分:0)
因为您尚未键入列表的声明。
尝试一下:
List<JButton> dice = new ArrayList<>();