【发布时间】:2011-01-06 21:51:44
【问题描述】:
我正在成功地从数据库中获取数据值。我还将它们存储到 String[] 数组中。我需要将字符串数组加载为JComboBox 的项目以响应执行的关键操作。每当按下一个键时,我如何重新加载JComboBox 的项目,因为获取的值取决于按下的键。很简单,我需要动态刷新JComboBox 项。
【问题讨论】:
我正在成功地从数据库中获取数据值。我还将它们存储到 String[] 数组中。我需要将字符串数组加载为JComboBox 的项目以响应执行的关键操作。每当按下一个键时,我如何重新加载JComboBox 的项目,因为获取的值取决于按下的键。很简单,我需要动态刷新JComboBox 项。
【问题讨论】:
DefaultComboBoxModel<String> model = new DefaultComboBoxModel<>( yourStringArray );
comboBox.setModel( model );
【讨论】:
您有几个选择。您可以使用removeAllItems()(或其他删除方法之一)和addItem(Object anObject) 来操作可选对象。或者您可以实现 ComboBoxModel 并允许它从您的数组中提供数据。
【讨论】:
这是演示默认组合框模型的演示
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);
}
}
我希望这会有所帮助:)
【讨论】:
它也可以在没有 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);
猜猜你会看到哪些值...
【讨论】: