我正在用 Java 制作一个使用 JTextField 的小型应用程序。现在,我希望,一旦运行应用程序,光标就会自动放置在该位置,以便用户不必单击它然后编写文本。我已经尝试了在网上找到的几乎所有内容:setCaretPosition(0)、grabFocus()、requestFocusInWindow() 或 requestFocus(),但它们都不起作用!我很绝望,你能帮我解决这个问题吗?多谢
默认情况下,焦点将转到窗口上的第一个组件。
如果文本字段不是第一个组件,那么您可以使用:
textField.requestFocusInWindow();
但是,您必须在窗口可见后调用此方法。
如果窗口不可见,那么您应该能够使用 Java lambda:
EventQueue.invokeLater( () -> textField.requestFocusInWindow() );
上面的代码将被放在最后Event Dispatch Thread (EDT)
,因此它应该在窗口可见后执行。
或者,您可以使用RequestFocusListener
接近从对话焦点.
请注意,现在 Java lambda 已经存在,这在大多数情况下都有点过分了,但它仍然可以用来设置模式对话框的焦点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)