event-handling - netbeans 中 Jcombobox 上的 Focuslost 事件

标签 event-handling jcombobox netbeans-8 focuslistener

我试图在我的组合框中绑定(bind)一个 focuslost 事件,但它没有发生。

这是我的代码:

jComboBox1.addFocusListener(new FocusListener(){
        public void focusGained(FocusEvent e){

        }
        public void focusLost(FocusEvent e){
         JOptionPane.showConfirmDialog(null,"focuslost");
          }
      });

我也试过这个-:

JComboBox 默认编辑器有一个内部类 BasicComboBoxEditor$BorderlessTextField,它是获取和失去焦点的组件。

它可以简单地通过-访问:

Component component = comboBox.getEditor().getEditorComponent();  
if (component instanceof JTextField) 
JTextField borderlesstextfield = (JTextField) borderless;

但是我在这条线上遇到了错误-

 JTextField borderlesstextfield = (JTextField) borderless;

我是 netbeans 的新手。请指导我。提前谢谢你。

最佳答案

我对此进行了测试(在 JPanel 中添加 JComboBox)。如果面板内有更多元素,则在按下 Tab 键或单击另一个元素时会触发焦点丢失。

考虑到您没有任何其他元素,或者您希望在单击窗口上的某个位置时也触发焦点丢失事件:

保持焦点监听器不变,并在自动生成的 initComponents() 之后添加以下内容:

    jPanel1.setFocusable(true);
    jPanel1.setRequestFocusEnabled(true);
    jPanel1.addMouseListener(new MouseListener() {
        @Override
        public void mouseClicked(MouseEvent e) {}

        @Override
        public void mousePressed(MouseEvent e) {
            jPanel1.requestFocusInWindow();
        }

        @Override
        public void mouseReleased(MouseEvent e) {}

        @Override
        public void mouseEntered(MouseEvent e) {}

        @Override
        public void mouseExited(MouseEvent e) {}
    });

关于event-handling - netbeans 中 Jcombobox 上的 Focuslost 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48862466/

相关文章:

jakarta-ee - NetBeans IDE在“清理和构建”或外部更改时发出异常的编译器错误。IDE不再意识到JPA生成的静态元模型

java - Netbeans 在 debian 上无法正常工作

javascript - 直接分配的事件处理程序是实际的对象属性吗?

javascript - JQuery Combobox 触发另一个事件

javascript - 为什么我的 event.currentTarget 会自动更改?

java - 通过组合框选择替换 JList

jQuery 链实时处理程序?

java - 在 Swing 中更改 JTable 列中的下拉内容

java - 更改另一个 JComboBox 后填充 JComboBox

spring-boot - 使用 Spring Boot 1.3,在 Netbeans 中更改时,spring-boot-devtools 和 Thymeleaf 模板不会实时重新加载