我有一个登录视图,其中包含两个用于用户名和密码的文本字段以及一个指定要使用的数据库的 ComboBox。为了允许组合框中预定义的数据库以外的其他数据库,我使用 setCustomTextAllowed(true) 使其可编辑。每个输入都有一个附加的输入处理程序,以生成对登录按钮的点击。此按钮的单击处理程序使用字段和组合框的值进行服务器调用:
login(txtUser.getText(), txtPwd.getText(), cboDatabase.getText())
问题是组合框的 getText() 不会返回组合框的实际值,如果它已手动更改并且尚未失去焦点。就好像组合框的值在失去焦点之前不会写入模型。相反,它返回组合框中选择的最新预定义值。如何确保数据库值是用户看到的?