我可以用这样的图标文件名填充二维数组吗?我收到错误消息
Type mismatch: cannot convert from String to Icon
所以问题是,不可能用图标文件名填充二维数组,还是我在这里犯了一个小错误?我只在数组上不断收到错误。
public Icon cards[][] = {{"Diamonds 2.png", "Diamonds 3.png", "Diamonds 4.png", "Diamonds 5.png", "Diamonds 6.png", "Diamonds 7.png", "Diamonds 8.png",
"Diamonds 9.png", "Diamonds 10.png", "Diamonds JACK.png", "Diamonds QUEEN.png", "Diamonds KING.png", "Diamonds ACE.png"},
{"Hearts 2.png", "Hearts 3.png", "Hearts 4.png", "Hearts 5.png", "Hearts 6.png", "Hearts 7.png", "Hearts 8.png",
"Hearts 9.png", "Hearts 10.png", "Hearts JACK.png", "Hearts QUEEN.png", "Hearts KING.png", "Hearts ACE.png"},
{"Clubs 2.png", "Clubs 3.png", "Clubs 4.png", "Clubs 5.png", "Clubs 6.png", "Clubs 7.png", "Clubs 8.png",
"Clubs 9.png", "Clubs 10.png", "Clubs JACK.png", "Clubs QUEEN.png", "Clubs KING.png", "Clubs ACE.png"},
{"Spades 2.png", "Spades 3.png", "Spades 4.png", "Spades 5.png", "Spades 6.png", "Spades 7.png", "Spades 8.png",
"Spades 9.png", "Spades 10.png", "Spades JACK.png", "Spades QUEEN.png", "Spades KING.png", "Spades ACE.png"}};
我已经更改了数组名称来检查,也许当我使用它时,这会导致问题,但不,数组上有同样的错误。
最佳答案
正如其他人所说,您正在创建一个二维字符串数组。
因此,将二维数组定义更改为:
public String[][] cards = //...
然后,迭代二维数组,并为每个字符串加载一个图标:
Icon[][] icons = new Icon[cards.length][];
for(int i=0;i<cards.length;i++){
icons[i] = new Icon[cards[i].length];
for(int j=0;j<cards[i].length;i++){
icons[i][j] = //load icon from cards[i][j];
}
}
并使用 icons
2D 数组在评论中提到的标签上设置图标。
关于带有图标名称的 Java 2d 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18320926/