【问题标题】:Reset ComboBox with new values使用新值重置 ComboBox
【发布时间】:2016-03-25 19:58:48
【问题描述】:

如何使用新值重新加载 JComboBox 对象? 我是否应该再次将 JComboBox 对象重新添加到 Panel 以查看显示的新值,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>

【问题讨论】:

    标签: java jframe jpanel jcombobox jcomponent


    【解决方案1】:

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

    【讨论】:

    • 我尝试使用 Com.setModel(new DefaultComboBoxModel(ComPort));昨天,它没有工作。我现在试写,它成功了,谢谢你:)
    【解决方案2】:

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

    【讨论】:

    • 谢谢,现在我有两种方法可以做到这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    • 1970-01-01
    相关资源
    最近更新 更多