java - 单击面板时失去对 JTextField 的关注

标签 java swing focus jpanel jtextfield

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

setFocusable(true) 对我不起作用。

如果我在主面板上单击,JTextField 仍具有焦点,您可以输入内容。

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

最佳答案

我想既然你想把焦点放在点击主面板上,你应该实现一个简单的 MouseListener 来为你完成这项工作。同样,由于面板(主面板)被添加到 JFrame 或更确切地说,它被设置为内容 Pane ,所以这是应该调用 setFocusable(true); 的地方。下面的代码应该可以解决问题:

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

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

关于java - 单击面板时失去对 JTextField 的关注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15336251/

相关文章:

java - 如何在 AuditorAware 中获取 Keycloak 用户名

java - 在 mysql insert 语句中使用 java 变量作为值

java - PaintComponent 没有被 JPanel 调用

java - 无法让 JPanel 在 Swing 中正确调整大小

JavaScript:停止选择可拖动元素

java - RxJava2 - 订阅的消费者抛出异常

java - 为什么更改用作 HashMap 中键的对象的哈希码会使查找返回 null?

java - 单击时禁用 JButton 并在 1 秒后重新启用它?

html - 如何使用 CSS 专注于 HTML 输入?

c# - 焦点抽象