在java swing中设置面板中文本字段的默认光标

时间:2015-06-18 06:03:57

标签: java swing textfield

我在Java中创建一个使用JTextField的应用程序。现在,我希望,一旦我运行应用程序,光标就会自动放入其中,这样用户就不必单击它然后写入文本。我已经尝试过requestFocusInWindow()但是它没有工作。焦点首先转到Jframe中的Panel,但我必须单击文本字段进行编辑。谁能帮我解决这个问题,真的很感激。非常感谢

1 个答案:

答案 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)

之前,这些组件不会“实现”