2016-03-25 30 views
0

JComboBox nesnesini yeni değerler ile nasıl yeniden yükleyebilirim? Görüntülenen yeni değerleri görmek için JComboBox nesnesini tekrar Panele eklemeliyim, P.S. Yığına yeni değerler katacak yöntemi ortadan kaldırdım ve "????" den sonra hedefime ulaşmayı umuyorum. Eğer Comport combobox yılında yeni değerler kullanmak isteyen dizidir görebileceğiniz gibi, yorum>ComboBox'ı yeni değerlerle sıfırla

<i> 
    public class Test { 
     static String [] ComPort={"No Ports Available"}; 
     static Stack ComPortList=new Stack(); 
     static JPanel Pan=new JPanel(); 
     static JComboBox Com=null; 
     static JFrame Fra=new JFrame(); 
     public Test() 
     { 
      Com=new JComboBox(ComPort); 
      Fra.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      Fra.setSize(750, 750); 
      Pan.add(Com); 
      Pan.setPreferredSize(new Dimension(500,500)); 
      Fra.setVisible(true); 
      Fra.setResizable(false); 
      Fra.add(Pan); 
     } 
     public static void main(String args[]) 
     { 
      new Test(); 
      AvailablePort(); 
      for(int i=0;i<100;i++) 
       if(ComPortList.isEmpty()) 
        break; 
       else 
        ComPort[i]=(String) ComPortList.pop(); 
      Com=new JComboBox(ComPort); 
      //???? 
     } 
    </i> 

cevap

0

yapabilirsiniz ComboBoxModel almak ve yenilerini mevcut tüm öğeleri kaldırmak ve eklemek için kullanabilirsiniz, ya da Sadece yeni bir JComboBox oluşturmak, yeni öğeleri yapıcısına aktarmak daha kolay olabilir.

+0

Com.setModel (yeni DefaultComboBoxModel (ComPort)) kullanmayı denedim; Dün ve işe yaramadı. Şimdi yazmayı denedim ve işe yaradı, teşekkürler :) –

0

JComboBox, tüm öğeleri temizlemenizi ve ardından yenilerini eklemenizi sağlar.

JComboBox<String> box = new JComboBox<String>(new String[]{"No Ports Available"}); 

box.removeAllItems(); // Clear all items. 

for(int i=0; i<10; i++) // Add your new items. 
    box.addItem("# "+i); 
+0

Teşekkürler, şimdi bunu yapmanın iki yolu var. –