【问题标题】:Dynamically change JComboBox动态改变 JComboBox
【发布时间】:2011-01-06 21:51:44
【问题描述】:

我正在成功地从数据库中获取数据值。我还将它们存储到 String[] 数组中。我需要将字符串数组加载为JComboBox 的项目以响应执行的关键操作。每当按下一个键时,我如何重新加载JComboBox 的项目,因为获取的值取决于按下的键。很简单,我需要动态刷新JComboBox 项。

【问题讨论】:

    标签: java swing jcombobox


    【解决方案1】:
    DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>( yourStringArray );
    comboBox.setModel( model );
    

    【讨论】:

    • 感谢您的回答,但您能否发布一个代码来说明这一点。这将非常有帮助。我不确定在 DefaultComboBoxModel 类中要写什么。
    • 就是代码。您无需在 DefaultComboBoxModel 类中编写任何内容。您只需使用字符串数组创建模型,然后将模型添加到组合框。
    【解决方案2】:

    您有几个选择。您可以使用removeAllItems()(或其他删除方法之一)和addItem(Object anObject) 来操作可选对象。或者您可以实现 ComboBoxModel 并允许它从您的数组中提供数据。

    【讨论】:

      【解决方案3】:

      这是演示默认组合框模型的演示

      public class ComboPanel extends JPanel {
      
          JComboBox jcbo;
          // this is constructor
          public ComboPanel(ArrayList<String> items) {
              jcbo = new JComboBox();
              // getting exiting combo box model
              DefaultComboBoxModel model = (DefaultComboBoxModel) jcbo.getModel();
              // removing old data
              model.removeAllElements();
      
              for (String item : items) {
                  model.addElement(item);
              }
      
              // setting model with new data
              jcbo.setModel(model);
              // adding combobox to panel
              this.add(jcbo);    
          }
      }
      

      我希望这会有所帮助:)

      【讨论】:

        【解决方案4】:

        它也可以在没有 DefaultComboBoxModel 的情况下工作...

        JComboBox op=new JComboBox(new String[] {"d","e","f"});
        op.removeAllItems();
        String[] new_entries=new String[] {"a","b","c"}
        for (String s : new_entries) {
             op.insertItemAt(s, op.getItemCount());
        }
        op.setSelectedIndex(0);
        

        猜猜你会看到哪些值...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-06-24
          • 2021-02-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多