的ImageIcon不会显示
问题描述:
的Mac OSX Netbeans的 JAVA的ImageIcon不会显示
目标:酒杯程序......我试着去获得一张扑克牌的一个ImageIcon在JLabel
逻辑显示: 我创建一些CARD对象具有返回与之相关联的imageIcon的方法。 我主要的GUI类它的工作原理,如果我创建新的ImageIcon指定文件位置 -
private void newGame(){
String temp1, temp2, temp3, temp4;
card1 = hand.dealHand();
card2 = hand.dealHand();
card3 = hand.dealHand();
card4 = hand.dealHand();
image1 = new ImageIcon();
image1 = card1.getImage();
//Creates DeckImage and Logo as JLabel and adds it to userPanel
//image1 = new ImageIcon("/Users/philhunter/NetBeansProjects/PractingProgramming/src/Resources/1.png");
card1Label = new JLabel(image1, JLabel.LEFT);
userPanel.add(card1Label);
card1Label.setText("");
}
注释掉线工作正常,并显示图像的ImageIcon但是当我用card1.getImage()方法,则图像不显示。方法很简单 -
public ImageIcon getImage(){
return this.image;
}
此外,如果你需要它,这里是从甲板类创建卡的方法 -
private ImageIcon C1,C2, ... ,C52;
private ImageIcon[] imageArray= { C1,C2,...,C52 };
C1 = new ImageIcon("/Users/philhunter/NetBeansProjects/PractingProgramming/src/Resources/1.png");
...
C52 = new ImageIcon("/Users/philhunter/NetBeansProjects/PractingProgramming/src/Resources/52.png");
int SUITS = suit.length;
int RANKS = rank.length;
int N = SUITS * RANKS;
//Creates a deck of 52 CARD objects
theDeck = new CARD[N];
for (int i = 0; i < RANKS; i++) {
for (int j = 0; j < SUITS; j++) {
//deck[SUITS*i + j] = rank[i] + " of " + suit[j];
card = new CARD(suit[j], rank[i], value[i], imageArray[SUITS*i + j]);
theDeck[SUITS*i + j] = card;
}
}
所以我的问题是为什么卡的ImageIcon不显示? (我没有收到错误信息)
答
好的,所以我发现了这个问题。我没有正确地用imageIcons初始化数组imageArray []。愚蠢的错误,但我想我会离开这个,以防其他人也犯这个愚蠢的错误。 :)
我想'imageArray [SUITS * i + j]'是一个包含'ImageIcon's的数组。你确定它已经正确初始化了吗?那是什么'C1'变量? – svz
是的,它是一个包含ImageIcon的数组。 C1变量是DECK类中的ImageIcon,如上所示。 –
我编辑了上面的DECK类来显示我如何初始化数组.. –