2016-04-08 15 views
-1

Şu an GUI'yı java'da nasıl kodlayacağımı öğreniyorum. Yapmaya çalıştığım şey, şu ana kadar elinde isimlerini, ikonlarını ve kartlarını gösteren bir kart oyunu oyuncuları için bir GUI yapmaktı. Bununla birlikte, dış JPanel içinde 13 aynı paneli ekleyebileceğini düşündüğüm yerde beklediğim bir problemle karşılaştım. Aşağıda sayesinde kodlardır !:Java GUI: JPanel Birden fazla aynı Panelleri ekle

public JPanel createNested(int i) { 

    ImageIcon image; 
    JPanel outer = new JPanel(new GridLayout(1,14)); 
    JPanel inner = new JPanel(); 
    JPanel deck = new JPanel(); 
    JLabel cards = new JLabel(cardBackImage); 
    inner.setLayout(new BoxLayout(inner, BoxLayout.Y_AXIS)); 
    JLabel name = new JLabel("Player" + i); 
    image = avatars[i]; 
    JLabel icon = new JLabel(avatars[i]); 
    outer.setBackground(Color.green); 
    inner.setBackground(Color.green); 
    deck.setBackground(Color.green); 
    deck.add(cards); 

    inner.add(name); 
    inner.add(icon); 
    outer.add(inner); 
    for(int k=0;k<13;k++){ 
     outer.add(deck); 
    } 
    return outer; 
    } 

i beklenen Ne: [isim & simgesi] [kart] [kart] [kart] [kart] [kart] [kart] [kart] [kart] [ kart] [kart] [kart] [kart] [kart]

gördüğüm ne

: [isim & simgesi] ...................... .................................................. ..... [kart]

(noktalar boşlukları gösterir)

cevap

2

ekleyebilir olamaz o bir JPanel örneğini birden çok kez. Her güverte için yeni bir JPanel oluşturmalısınız:

for(int k=0;k<13;k++){ 
    JPanel deck = new JPanel(); 
    JLabel cards = new JLabel(cardBackImage); 
    deck.setBackground(Color.green); 
    deck.add(cards); 
    outer.add(deck); 
} 
İlgili konular