当我点击主窗口时,希望jTextField失去焦点

时间:2010-11-23 03:02:13

标签: java swing

我一直在努力解决这个问题太久了。当我输入jTextField时,我希望它在单击文本域外的窗口时失去焦点。我无法弄清楚如何做到这一点。我能做的最好的事情是将焦点转移到下一个文本域。

2 个答案:

答案 0 :(得分:3)

为什么你想失去焦点?我确信有更好的设计然后强迫用户点击窗口以使文本字段失去焦点。

无论如何,当另一个组件获得焦点时,文本字段将失去焦点。默认情况下,面板不可聚焦,因此单击它不会导致文本字段失去焦点。使面板可以集中精力:

panel.setFocusable( true );

当然,现在当用户使用Tab键时,面板现在将包含在Tab键顺序中。这是另一个原因,这似乎是一个糟糕的设计。

答案 1 :(得分:0)

考虑你的类扩展JFrame:

JTextField jTextField1 = new JTextField();

addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextField1.setFocusable(false);
            }
        });

希望这有帮助...