我处于一个位置,我必须使用我的用户(5个用户)的名称填充JComboBox。当用户单击JComboBox中的名称时,我想要检索用户的UserID,而不是它们的实际名称,因为它们中的一些可能是相同的,并且使用其UserID作为WHERE过滤器进行SQL查询。
我将所有用户信息临时存储在一个Object中,由MySQL数据库检索。
如何编写在JComboBox中放置更多信息的方法,但只向用户显示实际名称?
我希望这是有道理的,其他地方可以随意提问。
提前致谢, 的Jesper。
答案 0 :(得分:0)
创建一个User
对象,其中包含具有相应getter(如果需要,还有setter)的名称和用户ID。将这些添加到组合框中。使用ListCellRenderer
定义User
对象实际渲染的方式。
有关详细信息,请参阅How to use comboboxes
答案 1 :(得分:0)
结帐Combo Box With Custom Renderer。它解释了您需要按照两个步骤来实施正确的解决方案:
KeySelectionManager
,因此在使用自定义渲染器时不会破坏默认组合框功能