Я сейчас нахожусь в проекте и пробую новый код, чтобы сделать мою программу более эффективной.Я думал о 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
}
}
Ожидается: работать.Но, естественно, он не может скомпилироваться и вылетает.