我有一个带有作者列表的组合框,并且在组合框中有变化我必须使用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());
我无法在表格中获得价值。名称没有返回。我该如何解决这个问题?
答案 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
}
但它有其局限性。希望它有所帮助