我一直在努力解决这个问题太久了。当我输入jTextField时,我希望它在单击文本域外的窗口时失去焦点。我无法弄清楚如何做到这一点。我能做的最好的事情是将焦点转移到下一个文本域。
答案 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);
}
});
希望这有帮助...