Java 焦点侦听器摆动中的问题

Java 焦点侦听器摆动中的问题,java,swing,Java,Swing,在我的应用程序中,我使用了一个由自动完成详细信息组成的框架,即,如果我们选择名称,将自动显示该名称的详细信息。 对于选择名称,我使用了一个带有下拉菜单的单独文本字段,类似于自动完成 但当我进入“名称”部分,用鼠标单击“名称”时,它会被选中,就像我使用键盘导航键时一样,焦点不会停留在文本字段中,即使用鼠标选择文本字段并使用键盘,它也不会被选中 希望我明白了,如果你不能理解我的意思,我很抱歉。我建议你在下拉列表中使用jcombox而不是JTextField 使用loadCombo方法在JComboB

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

但当我进入“名称”部分,用鼠标单击“名称”时,它会被选中,就像我使用键盘导航键时一样,焦点不会停留在文本字段中,即使用鼠标选择文本字段并使用键盘,它也不会被选中


希望我明白了,如果你不能理解我的意思,我很抱歉。

我建议你在下拉列表中使用jcombox而不是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;
            }
        });

你能把你的问题贴出来吗?对不起,不,不清楚,这不是语言的问题:有几个问题使我们无法回答自定义类b异常事件在这些自定义类c中处理FocusListener是出了名的棘手,这里它可能对你的具体环境是特殊的。总而言之:您没有显示的代码有问题,请参阅关于如何改进您的问题的其他注释:-请提供您的代码以获得更好的解决方案。您可以安装一个自定义KeyboardFocusManager,该管理器委托给默认的KeyboardFocusManager,并记录焦点发送的位置和执行的操作的堆栈跟踪,这样才能找到问题所在。