2016-03-21 18 views
1

içinde nasıl taşıyabilirim 4 sınıfım olduğu bir menü oluşturdum. Farklı öğelerin yer aldığı her yemek için bir Jlist oluşturdum. Bu seçilmiş öğelerin, Jlist içeren farklı bir Sınıftaki başka bir Jlist'de görüntülenmesini nasıl sağlayabilirim.Seçilen öğeleri bir Jlist'den başka bir Jlist'e başka bir Sınıf

+0

Ne demek farklı bir sınıf? – Charlie

+0

İkinci 'JList'inize ikinci, güncelleştirilmiş dlm ayarını yapıyor musunuz? – Jonah

+0

Çünkü "dessertList = new JList (dlm);" dlm 'yi JList'e bağladığınızda, siz aynı JList'de ".setModel (dlm)" yi çağırıyorsunuz. – Jonah

cevap

1

Sen bir DLM oluşturabilir Default List Models

bakmak ve onu diğer DLM en arasındaki içeriğini var paylaşmalıdır. Sen

DefaultListModel dlm = new DefaultListModel(); 
JList list1 = new JList(dlm); 

Daha sonra DLM varsayılan öğeleri ekleyebilir ve JList diğer Dalaman o atar diğer sınıftaki bir fonksiyonu oluşturabilir ilk sınıfında böyle bir şey ekleyerek yapıyor hakkında gitmek başlayabileceğini

public static void setDLM(DefaultListModel dlm) 
{ 
    list2.setModel(dlm); 
} 

ardından statik ithalat setDLM() yöntem gerektiği, ve düğmeleri aşağıdaki komutu yürütün ActionListener

DefaultListModel<String> dlm2 = new DefaultListModel<>(); 

for(String item : list1.getSelectedValuesList()) 
{ 
    dlm2.addElement(item); 
} 

setDLM(dlm2); 
+1

ya da "addElement (E)" ile aynı şeyi "add (int, E)" ile aynı şeyi yapacak, fakat daha az kodla (ve bende ne olduğunu geçersiz kılmadan) kullanıyorum – MadProgrammer

+0

@MadProgrammer, Evet, orijinal çözümüm orijinal dlm'yi seçilen değerlerle yeniden yazmaktı ancak 2 dlms daha iyi olduğuna karar verdiler – Jonah

+0

Evet, iki modele (ve iki JList'e) ihtiyacınız var, ancak yine de orijinal değerlerin nasıl kaldırılacağını ele almanız gerekiyor ilk listeden;) – MadProgrammer

İlgili konular