我在JCombo框中有一个项目列表,基于另一个我想要更改列表中项目的事件。 我有这样的方法
void changeChoices(Array[] foo)
{
JComboBox.removeAllItems();
for (int i=0;i < foo.length ; ++i)
JComboBox.addItem(foo[i]);
}
这是有效的?
答案 0 :(得分:3)
您的代码在语法方面无效。
foo
似乎是Array
个对象的数组,您确定要使用它们吗?
一个Array
个对象数组的组合框?
您有JComboBox.removeAllItems();
,此后无效
JComboBox
类没有名为removeAllItems()
的静态方法。
在for循环中使用JComboBox.addItem(foo[i]);
,但事实并非如此
由于上述类似原因再次有效,JComboBox
类没有名为addItem()
的静态方法。
有效的方法可能就像这样:
String[] oldValues = new String [5];
JComboBox comboBox = new JComboBox(oldValues);
public void changeChoices ( String [] newValues )
{
comboBox.removeAllItems();
for( int i = 0; i < newValues.length; i++ )
comboBox.addItem( newValues [ i ] );
}
最后但并非最不重要的一点是,如果要从组合框中删除所有值并添加全新的值,则应在代码中处理相应的事件。您可能会在组合框中添加ItemListener
并在itemStateChanged(ItemEvent event)
方法中实施所选项目事件。因此,您应该实现从组合框中选择新添加的值时会发生的情况。我希望这篇文章有用并且有意义。