更改JCombobox中的项目列表

时间:2012-02-22 22:34:37

标签: java swing

我在JCombo框中有一个项目列表,基于另一个我想要更改列表中项目的事件。  我有这样的方法

void changeChoices(Array[] foo) 
 {
   JComboBox.removeAllItems();

  for (int i=0;i < foo.length ; ++i)
     JComboBox.addItem(foo[i]);

 } 

这是有效的?

1 个答案:

答案 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)方法中实施所选项目事件。因此,您应该实现从组合框中选择新添加的值时会发生的情况。我希望这篇文章有用并且有意义。