2011-01-06 95 views
20

我正从数据库中成功获取数据值。我也将它们存储到一个String[]阵列中。我需要加载字符串数组作为JComboBox的项目,以响应执行的关键操作。无论何时按下一个键,我如何重新加载JComboBox的项目,因为取得的值取决于所按的键。简而言之,我需要动态刷新JComboBox项目。动态更改JComboBox

回答

29
DefaultComboBoxModel model = new DefaultComboBoxModel(yourStringArray); 
comboBox.setModel(model); 
+0

谢谢,但你可以请张贴代码illustrarte这一点。这将非常有帮助。我不确定要在DefaultComboBoxModel类中编写什么。 – 2011-01-06 22:06:24

6

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

6

这是说明默认组合框模型

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

演示我希望这将有助于你的答案有点:)