我正在一个学校项目中,我们必须使用Java制作纸牌游戏。我已经做了一些工作(使用GUI,我已经打开了选择屏幕,什么都没有),并且当前正在编写代码来在按下按钮时翻转卡片(想想纸牌游戏WAR)。玩家的纸牌存储在二维数组中(cardDeck [playernum] [cardnum])。 cardDeck是从我创建的自定义Card类创建的,并且我能够返回卡号和西装的值。我在项目目录中的每个文件夹中创建了一些文件夹,每个文件夹中有13个图像文件,分别标记为1.png至13.png。我希望能够根据用户的最高卡号来调用图像(例如,返回值为9和Hearts,因此我想在图像目录中找到9个Hearts)。我尝试将以下代码用于玩家1的回合:
switch (playerTurn){
case 1:
Card value = playerDecks[0][0];
int cardVal = value.returnUltimate();
String cardSu = value.returnCardSuite();
ImageIcon newIcon = new ImageIcon(getClass().getResource("../../card game icons/" + cardSu + "/" + cardVal + ".png"));
jLabel3.setIcon(newIcon);
jLabel3.revalidate();
}
但是,当我用其余的代码进行编译时,我得到了:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at javax.swing.ImageIcon.<init>(ImageIcon.java:217)
at cards.wargame.jButton1ActionPerformed(wargame.java:151)
at cards.wargame.access$000(wargame.java:14)
at cards.wargame$1.actionPerformed(wargame.java:66)
如何使它工作?