FocusListener-Swing中的问题

时间:2013-07-29 14:19:07

标签: java swing

在我的应用程序中,我使用了一个由自动完成细节组成的框架,即如果我们选择名称,将自动显示该名称的详细信息。 为了选择名称,我使用了带有下拉列表的单独文本字段,类似于自动完成。

但是当我转到名称部分并使用鼠标点击名称时,它被选中,当我使用键盘导航键时,即使用鼠标选择文本字段并使用键盘后,Focus也不会停留在文本字段中,它没有得到关注。

希望我明白,如果你不明白我的意思,我很抱歉..

1 个答案:

答案 0 :(得分:0)

我建议您使用JComboBox而不是JTextField进行下拉

使用loadCombo()方法在JComboBox

中添加名称

然后使用

jComboBox.addActionListener(new ActionListener(){
        public void actionPerformed(ActionEvent ae){
Object name=jComboBox.getSelectedItem();

//Make DB connection on name and fetch the details
//Use double vector for fetching data

Vector<Vector<String>> data = new Vector<Vector<String>>();
        data=getDetails();

Stsem.out.println(data);//To print data (for Confirmation that it works fine)
JOptionPane.showMessageDialog(this,data);


private Vector<Vector<String>> getDetails(Object name) {
//DB Connections
PreparedStatement pre = conn.prepareStatement("select * from Table");

ResultSet rs = pre.executeQuery();

while(rs.next())
{
Vector<String> item = new Vector<String>();
item.add(rs.getString(1)); 
item.add(rs.getString(2)); 
...
itemVector.add(item);
}

/*Close the connection after use (MUST)*/
if(conn!=null)
conn.close();

return itemVector;
            }
        });