2012-09-26 40 views
0

的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不显示? (我没有收到错误信息)

+1

我想'imageArray [SUITS * i + j]'是一个包含'ImageIcon's的数组。你确定它已经正确初始化了吗?那是什么'C1'变量? – svz

+0

是的,它是一个包含ImageIcon的数组。 C1变量是DECK类中的ImageIcon,如上所示。 –

+0

我编辑了上面的DECK类来显示我如何初始化数组.. –

回答

0

好的,所以我发现了这个问题。我没有正确地用imageIcons初始化数组imageArray []。愚蠢的错误,但我想我会离开这个,以防其他人也犯这个愚蠢的错误。 :)