2016-03-25 4 views
0

Как я могу перезагрузить объект JComboBox новыми значениями? Должен ли я снова добавить объект JComboBox в Panel, чтобы увидеть отображаемые новые значения, P.S. Я исключил метод, который добавит новые значения в стек, и я надеюсь достичь своей цели после «????» комментарии, как вы можете видеть ComPort это массив, который я хотел бы использовать свои новые значения в выпадающем списке>Сбросить ComboBox с новыми значениями

<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

Спасибо, теперь у меня есть два способа сделать это. –