将光标设置在 JTextField上



我正在用Java制作一个使用JTextField的小应用程序。现在,我希望,一旦我运行应用程序,光标就会自动放入其中,这样用户就不必单击它然后编写文本。我已经尝试了我在网上找到的几乎所有东西:setCaretPosition(0),grabFocus(),requestFocusInWindow()或requestFocus(),但没有一个有效!我很绝望,你能帮我解决这个问题吗?多谢

默认情况下,焦点将转到窗口上的第一个组件。

如果文本字段不是第一个组件,则可以使用:

textField.requestFocusInWindow();

但是,您必须在窗口可见后调用此方法。

如果窗口不可见,那么您应该能够使用 Java lambda:

EventQueue.invokeLater( () -> textField.requestFocusInWindow() );

上面的代码将放在Event Dispatch Thread (EDT)的末尾,所以它应该在窗口可见后执行。

或者,可以使用对话框焦点中的RequestFocusListener方法。

请注意,既然 Java lambda 已经存在,这在大多数情况下是矫枉过正的,但它仍然有一个地方可用于将焦点设置在模态对话框上。

这适用于光标位置textField.requestFocus();

最新更新