单击面板时丢失焦点在JTextField上

Nik*_*las 3 java swing focus jpanel jtextfield

当用户点击主面板时,我想失去对JTextField的关注.

setFocusable(true) 不适合我.

如果我点击主面板,JTextField仍然是焦点,你可以输入内容.

注意:我的JFrame设置为可聚焦(true).

tmw*_*nik 5

我想因为你想要专注于点击主面板,你应该实现一个简单MouseListener的工作.再次,因为面板(主面板)被添加到JFrame或更确切地说它被设置为内容窗格,这是setFocusable(true);应该调用的地方.下面的代码应该解决问题:

       mainPanel.addMouseListener(new MouseAdapter() {
            @Override
            public void mouseClicked(MouseEvent e) {
                super.mouseReleased(e);
                Focus.this.grabFocus();
            }
        });
Run Code Online (Sandbox Code Playgroud)

请注意,这Focus是我的类的名称,并在将其JPanel添加到之前进行扩展JFrame.