Mac OSX Netbeans JAVA
目标: BlackJack程序...我正在尝试获取扑克牌的imageIcon以在JLabel中显示
逻辑:我已经创建了一些卡片对象,其中包含一个返回与其关联的imageIcon的方法。在我的主图形用户界面类中,如果我创建新的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;
}此外,如果您需要它,下面是从DECK类创建卡片的方法-
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不显示?(我没有收到错误消息)
发布于 2012-09-27 09:34:21
好了,我找到了问题所在。我没有用imageIcons正确初始化数组imageArray[]。愚蠢的错误,但我想我会留下这一点,以防其他人也犯这个愚蠢的错误。:)
https://stackoverflow.com/questions/12601772
复制相似问题