所以我有一系列名为card1到card20的jButton。我想根据是否满足特定条件来更改图标,因此我想创建一个循环并将每个图标引用为 (“card”+ i) 或类似的内容,而不是编写单独的 if 语句每个按钮。我正在使用的代码已添加在下面,但是有没有办法循环此 if 语句,以便代码的每个循环都会影响不同的卡?
private void cardreset() {
if (cardmatch[1] == 0) {
card1.setIcon(back);
}
}
这就是我想做的,但是事先将所有“card”变量添加到数组中会导致非法前向引用错误。
private void cardreset() {
for(int i=1; i<=20; i++){
if (cardmatch[i] == 0) {
card[i].setIcon(back);
}
}
}
最佳答案
您可以将它们放入数组中并以这种方式修改它们。
JButton cards[] = { card1, card2, ..., card20 };
然后当你想修改所有图标时:
if (condition) {
for (JButton card : cards)
card.setIcon(...);
}
或者修改特定图标(每隔一个):
for (int i = 0; i < cards.length; i++)
if (i % 2 == 0)
cards[i].setIcon(...);
关于java - 在 Java 中从字符串值调用/使用变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23481411/