2016-03-24 37 views
0

ile JLabel'i çağırmanın herhangi bir yolu var mı? N = 1 gibi bir etiket, eğer N = 2 ise, etiket2 dönecektir. Harita ile denedim ama düzgün düşünemiyorum.Tamsayı

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);  

sahte kodu vermek çalışılıyor:

giriş N

çıkış N. Etiket adı

+0

Eğer HashMap ile hiçbir şey yapmaz yayınlanmıştır kod olsa harita içine koymadan önce ilk etiketler oluşturmak gerekir. Nasıl kullanıyorsun? –

+0

Öncelikle bunun gibi olurdu ... 'Harita ' – 3kings

+0

Bence asıl soru burada ne yapmaya çalışıyorsun? Neden bir numara ile bileşenleri çağırmanız gerekiyor? –

cevap

0

Yalnızca etiketinizin adını istiyorsanız, etiketin adını almak için box.get(1) numaralı telefonu veya n'th etiketi için box.get(n) numaralı telefonu arayabilirsiniz. Daha sonra yukarıda anlatılan aynı box.get(n) yöntemi kullanarak geri çağırabilir hangi Map<Integer, JLabel> box = new HashMap(); ve box.put(1, label); ve box.put(5, label5); vb kullanın: aslında tüm JLabel almak istiyorsanız

, sen haritayı değiştirebilir. İkinci durumda

, sen

3

kullanabilirsiniz bir 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()); 
} 

Ben bugün olur Listeler sipariş edildiğinden List<JLabel> kullanmış.