0

Mac OSX Netbeans JAVA

目標: BlackJack プログラム... JLabel に表示するトランプの imageIcon を取得しようとしています。

ロジック: 関連付けられた imageIcon を返すメソッドを持ついくつかの CARD オブジェクトを作成しました。私のメイン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;
}

また、必要に応じて、DECK クラスから CARD を作成するメソッドを次に示します。

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 が表示されないのはなぜですか? (エラー メッセージは表示されません)

4

1 に答える 1

0

わかりましたので、問題が見つかりました。imageIcons で配列 imageArray[] を適切に初期化していませんでした。ばかげた間違いですが、他の人もこのばかげた間違いを犯した場合に備えて、これを残しておくと思いました。:)

于 2012-09-27T01:34:21.403 に答える