2016-03-24 24 views
0

整数でラベルを呼び出そうとしています。 N = 1の場合はラベルを返し、N = 2の場合はlabel2を返します。私はで試しましたが、マップは正しく考えられません。整数でJLabelを呼び出す方法はありますか

擬似コードを与えるためにしようと
Map<Integer, String> box = new HashMap(); 
{ 
     box.put(1, "label"); 
     box.put(2, "label2"); 

} 

    JLabel label = new JLabel(); 
    ImageIcon image1 = new ImageIcon("BlackKnight.png"); 
    label.setIcon(image1); 

    JLabel label2 = new JLabel(); 
    ImageIcon image2 = new ImageIcon("BlackBishop.png"); 
    label2.setIcon(image2);  

入力N

出力N番目のラベル名

+0

かかわらマップ内で、あなたのHashMapで何もしない掲示コードをそれらを置く前に、最初のラベルを作成する必要があります。どうやって使ってるの? –

+0

まずはこれ以上のことでしょう... 'Map ' – 3kings

+0

本当の質問はあなたが何をしようとしていると思いますか?なぜ番号でコンポーネントを呼び出す必要がありますか? –

答えて

0

ラベルの名前が必要な場合は、box.get(1)を呼び出してlabel1の名前を取得するか、n番目のラベルにbox.get(n)という名前を付けます。

あなたが実際に全体のJLabelを取得したい場合は、にマップを変更することができます:Map<Integer, JLabel> box = new HashMap();と後で上記と同じbox.get(n)方法を使用してコールバックすることができたbox.put(1, label);box.put(5, label5);などを使用しています。後者の場合

、あなたは

3

あなたは、私がpersonnallyだろうMap<Integer, JLabel>

Map<Integer, JLabel> map = new Hashmap<>(); 

JLabel first = new JLabel("I'm first"); 
JLabel second = new JLabel("I'm second"); 

map.put(1, first); 
map.put(2, second); 

// Will print all the texts from the JLabels 
for (JLabel j : map) {  
    System.out.println(j.getText()); 
} 

を使用することができますリストが注文されているのでList<JLabel>を使用しています。

関連する問題