在comboBox中显示对象的第一个和第二个值

时间:2014-12-21 02:03:42

标签: java swing jcombobox

我有一个带有作者列表的组合框,并且在组合框中有变化我必须使用java swing在表格中显示作者的详细信息。我确实喜欢:

for(Author author: Application.authors){
    jComboBoxAuthors.addItem(author);
}

并选择项目进行更改:

if(jComboBoxAuthors.getSelectedIndex()>0){
    Author author = (Author)e.getItem();
    String name = author.getFirstName()+" "+author.getLastName();
}

它在组合中显示对象,但我只需要名称,如果我dojComboBoxAuthors.addItem(author.getFirstName());  我无法在表格中获得价值。名称没有返回。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:0)

使用自定义渲染器将破坏JComboBox的默认功能。也就是说,您将无法再使用键盘选择项目。

查看Combo Box With Custom Renderer以获取更多信息,并查看更完整的解决方案,了解如何解决此问题。

答案 1 :(得分:0)

您可以做的一件事是覆盖toString()方法,如下所示

@Override
    public String toString() {
        return firstName+" "+lastName; // so that name will be displayed instead of default object
    }

但它有其局限性。希望它有所帮助