2016-03-25 49 views
0

如何使用新值重新加載JComboBox對象? 我應該重新將JComboBox對象重新添加到面板以查看顯示的新值,P.S.我取消了將會爲堆棧添加新值的方法,並希望在「????」之後達到我的目標。發表評論,因爲你可以看到相稱的是,我希望在組合框中使用其新值的數組>使用新值重置組合框

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

回答

0

你可以得到的ComboBoxModel並用它來刪除所有現有項目並添加新的,或者可能更容易創建一個新的JComboBox,將新項目傳遞給它的構造函數。

+0

我試圖使用Com.setModel(新的DefaultComboBoxModel(ComPort)); 昨天,它沒有工作。 我重試現在寫,它的工作,謝謝:) –

0

JComboBox允許您清除所有的項目,然後添加新的項目。

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

謝謝,現在我有兩種方法來做到這一點。 –