用新值重置 ComboBox

Reset ComboBox with new values

如何使用新值重新加载 JComboBox 对象? 我是否应该再次将 JComboBox 对象重新添加到面板以查看显示的新值,P.S。我去掉了将新值添加到堆栈的方法,我希望在“????”之后达到我的目标。注释,如您所见,ComPort 是我希望在组合框中使用其新值的数组>

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

您可以获取 ComboBoxModel 并使用它来删除所有现有项目并添加新项目,或者创建一个新的 JComboBox 并将新项目传递给其构造函数可能更容易。

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