【发布时间】:2021-06-29 17:55:44
【问题描述】:
我正在做一个大学项目,它涉及从列表中选择一个用户并“登录”。我目前从数据库中获取数据并使用while循环将数据添加到JComboBox:
while(rs.next())
{
userID = rs.getInt("user_ID");
fname = rs.getString("fname");
lname = rs.getString("lname");
userSelect.addItem(userID + " " + fname + " " + lname);
}
然后我想将所选项目的用户 ID 传递给新的 JFrame,并且只传递用户 ID。从那里我可以得到用户的其余信息。处理它的最佳方法是什么?要拼接字符串?
我有一个运行以下操作的提交按钮
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == select) {
Object item = userSelect.getSelectedItem();
System.out.println(item);
UserDash getDash = new UserDash(item);
this.dispose();
}
}
【问题讨论】:
-
您想将数据的呈现与数据/模型分开。
JComboBox在这方面非常灵活。首先查看How to Use Combo Boxes 和Providing a Custom Renderer,尤其是(这是Swing 中非常常见的概念,您应该了解它)。 -
这意味着您可以依赖用户(即对象)的“模型”表示,而不是依赖
String解析,这几乎总是您能做的最糟糕的事情