2017-03-04 58 views
1

我想在Netbeans中创建一个Swing GUI。我创建了一个jcombobox,并且将它绑定到一个名为'Item'的实体上,以便组合框显示表格“Item”中当前存在的项目的名称,因此我使用查询组件,列表组件和渲染器来绑定它它工作得很好。但是,我需要在组合框中添加“所有项”字段。有人有我应该从哪里开始的提示吗?如何将“所有项目”字段添加到jcombobox中

+1

您需要扩展'JComboBox'并在那里定义该方法。 –

+0

你可以用一个数组初始化一个JComboBox http://www.dreamincode.net/forums/topic/300492-how-to-add-an-object-array-into-a-jcombobox/ – c0der

回答

1

尝试

List<String> listItems = classDAO.findElement(); 

    DefaultComboBoxModel<String> comboModel = new DefaultComboBoxModel(); 

    for(String string : listItems) 
    { 
     comboModel.addElement(string); 
    } 

    comboModel.addElement("All items"); 

    JComboBox<String> comboBox = new JComboBox<>(comboModel); 
+0

最后,这实际上工作! – Sofia

1

您可以手动从表格中的项目后,项目添加到组合框已被添加到组合框:

comboBox.addItemAt("All Items", 0); 

将在插入新项目组合框的顶部。

+0

我在initComponents()调用之后在构造函数中添加了这个,但是我得到一个异常“不能在非可变数据模型中使用此方法”。 – Sofia

+0

@Sofia:你通常如何“给”你的组合框的数据? –

+0

@sofia,那么你需要创建一个新的DefautlComboBoxModel,并将每个项目从退出模型复制到新模型。 Gerry在这个答案中已经表明了基本的方法。 – camickr

相关问题