java - 单击 JTable 时文本字段焦点丢失和获得

标签 java swing focuslistener

我有一个文本字段,当获得焦点时会显示一个带有表格的面板,当焦点丢失时会使其不可见。

在字段中键入内容会同时搜索数据库并在表格中显示结果。

当我单击表格选择一行时,文本字段失去焦点,然后立即再次获得焦点,并且我无法选择行(行选择 - 启用,单元格编辑 - 禁用,选择模式 - 单选)

文本字段获得和失去焦点以及键入时的代码:

private void productBrandTextFieldFocusGained(java.awt.event.FocusEvent evt) {                                                  
    brandSearchPanel.setVisible(true);
    displayBrands();
} 

private void productBrandTextFieldFocusLost(java.awt.event.FocusEvent evt) {                                                
    brandSearchPanel.setVisible(false);
}

private void productBrandTextFieldKeyReleased(java.awt.event.KeyEvent evt) {                                                  
    searchBrand();                           
}   

图像显示获得、失去焦点或打字@http://sdrv.ms/14TEq2T时会发生什么情况

此外,我希望能够使用向下键浏览行。请建议一些代码,当按下向下键时,焦点将从文本字段中丢失,并且选择行,并且按向上或向下键将向上或向下移动行。

最佳答案

FocusEvent 有一个方法 getOppositeComponent(),您可以在逻辑中使用它。

当文本字段失去焦点时,您将调用此方法。如果获得焦点的组件是表格,则不要使表格面板不可见。然后,当用户单击表格时,焦点应保留在那里。

要处理文本字段中的向上/向下箭头键,您需要使用键绑定(bind)。您将创建一个操作,从表中获取当前选择,然后根据按下的键将选择更改 +/- 1。阅读 How to Use Key Bindings 上的 Swing 教程了解更多信息。

关于java - 单击 JTable 时文本字段焦点丢失和获得,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17284659/

相关文章:

Java Animation,以1x,1y的频率更新动画

java - JButton 以编程方式显示工具提示 : actionMap. get ("postTip") 为空

react-native - 尝试重置导航会引发错误

java - 部署 WAR 时为空指针

java - Threads 和 Hibernate session 的随机错误

java - 在java swing中浏览html文件

Java BoxLayout 返回错误 BoxLayout 无法共享

java - 如何使 jtable 单元格监听另一个单元格的更改

java - 将 KeyEvent 传递给不同的组件

java - 无法将 GWT 插件安装到 Eclipse