2016-04-11 13 views
0

Her tab3 sekmesini tıklattığımda, bir liste listOfFiles'u yeniden yükler, sonra da listedeki her öğe için sekmeye bir düğme ekler. Sekmeyi tıklattığımda tekrar aynı düğmeleri eklemeye devam etmemesini nasıl sağlayabilirim? Not: Liste, her tıklama arasında değiştirilebilir.Java: Öğelerin UI'ye kopya olarak eklenmesini önle

for (int i = 0; i < listOfFiles.length; i++) { 
    if (listOfFiles[i].isFile()) { 
     JButton btnTemp2 = new JButton("Load: " + listOfFiles[i].getName()); 
     tab3.add(btnTemp2); 
     tab3.revalidate(); 
    } 
} 

nedir (iki tıklama sonra, örneğin) oluyor:

(düğme) Yük: Dosyam

(düğme) Yük: MyFile2

(düğme) Yük: myFile

(düğme) Yük: MyFile2

İstediğim şey (tıklama herhangi bir sayıda sonra):

(düğme) Yük: Dosyam

(düğme) Yük: MyFile2 yerine bir List daha Set içinde

+1

Dosya listesini yeniden yüklemeden önce Listeyi temizlediniz mi? – MadProgrammer

cevap

1

Tüm öğeleri tab3.removeAll() yöntemiyle kaldırabilirsiniz. Bu yüzden, her bir tıklamadan sonra, önce bu yöntemi çağırın ve ardından düğmeleri ekleyin.

tab3.removeAll(); 
for (int i = 0; i < listOfFiles.length; i++) { 
    if (listOfFiles[i].isFile()) { 
     JButton btnTemp2 = new JButton("Load: " + listOfFiles[i].getName()); 
     tab3.add(btnTemp2); 
    } 
} 
tab3.revalidate();