当前位置: 首页 > 知识库问答 >
问题:

NetBeans中Jcombobox上的焦点丢失事件

萧宣
2023-03-14

我正在尝试在我的组合框上绑定一个失焦事件,但它没有发生。

这是我的密码-:

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

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

我还试着这样做:

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

它可以通过以下方式访问:

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

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

 JTextField borderlesstextfield = (JTextField) borderless;

我是网豆新手,请提前指导me.Thank。

共有1个答案

梁丘远航
2023-03-14

我测试了这个(在J面板中添加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) {}
    });
 类似资料:
  • 焦点事件会在页面元素获得或失去焦点时触发。利用这些事件并与document.hasFocus()方法及 document.activeElement 属性配合,可以知晓用户在页面上的行踪。有以下6 个焦点事件。 blur:在元素失去焦点时触发。这个事件不会冒泡;所有浏览器都支持它。 DOMFocusIn:在元素获得焦点时触发。这个事件与HTML 事件focus 等价,但它冒泡。只有Opera 支持

  • 我的代码中有一个< code>JCombobox。我已经添加了< code>FocusLost事件。但它无论如何也没有被解雇。我已经尝试了很多次,但没有找到解决办法。 但控制台中没有打印任何内容。请告诉我我做错了什么。

  • 我面临着这里提到的同样的问题SWT:表丢失了选择。我使用的是ubuntu 12.04,而不是windows。是否有任何方法可以突出显示SWT表的选定行,即使在焦点丢失之后。我尝试将focus listener添加到表中,在focus lost中,我更改了所选项目的背景色,而on focus gain重置了背景色。请参阅代码。 但它不起作用。是否有其他解决方案/解决方法?

  • 我正在尝试从uwsgi-doc 运行Ubuntu Focus al(全新安装[VM]) 这是我安装的所有内容 但是当我试着运行我得到的例子时 [...] JVM 11.0.14 9-Ubuntu-0ubuntu2.20.04初始化为0x555b6858c348(工作线程:1 pid:5177)线程“main”java.lang.NoClassDefFoundError:uwsgi由以下原因引起:j

  • 我在Spring Boot应用程序中从聚合根发布事件时遇到了困难。我基本上想要的是在每次关于一个人的一些信息被更改时发布一个“更新”事件。这方面的代码非常简单: 我正在通过管理器管理实例: 然而,当我调用manager(时,事件似乎“丢失”了:在调用方法时,所有事件仍然存在,但是当Spring调用时,集合是空的。 那么我怎么才能回到正轨呢?