首页 文章

单击JTable时,文本字段焦点丢失并获得

提问于
浏览
0

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

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

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

当TextField获得和失去焦点时以及键入时的代码:

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

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

1 回答

  • 1

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

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

    要处理文本字段中的向上/向下箭头键,您需要使用 Key Bindings . 您将创建一个Action,从表中获取当前选择,然后根据按下的键将选择更改为/ - 1 . 有关更多信息,请阅读How to Use Key Bindings上的Swing教程 .

相关问题