我在Java中创建一个使用JTextField的应用程序。现在,我希望,一旦我运行应用程序,光标就会自动放入其中,这样用户就不必单击它然后写入文本。我已经尝试过requestFocusInWindow()但是它没有工作。焦点首先转到Jframe中的Panel,但我必须单击文本字段进行编辑。谁能帮我解决这个问题,真的很感激。非常感谢
答案 0 :(得分:0)
检查requestFocusInWindow()
返回的内容。如果它可能成功则返回true,如果肯定失败则返回false。
此外,请在致电JTextField
时等待requestFocusInWindow()
的父母可见。根据我的经验,在父母可见之前调用该方法通常不起作用。
以下是documentation:
中的段落如果您想确保特定组件获得焦点 第一次激活一个窗口,你可以调用 组件之后的组件上的requestFocusInWindow方法 已经实现,但在显示框架之前。
然后提供此代码示例:
frame.pack(); // Realize the components.
button.requestFocusInWindow();
frame.setVisible(true); // Display the window.
我怀疑当组件被“实现”(无论这意味着什么)时,Java会自动委派焦点。我还怀疑,如果您不致电pack()
,则在致电setVisible(true)