动态更改JComboBox

时间:2011-01-06 21:51:44

标签: java swing jcombobox

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

4 个答案:

答案 0 :(得分:36)

DefaultComboBoxModel model = new DefaultComboBoxModel( yourStringArray );
comboBox.setModel( model );

答案 1 :(得分:6)

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

答案 2 :(得分: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);    
    }
}

我希望这对小事有所帮助:)。

答案 3 :(得分:-1)

它也适用于没有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);

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