如何将Swing文本区域加载后立即获得焦点?

时间:2011-04-21 14:50:34

标签: java swing focus jtextarea

我创建了一个简单的Swing面板,在加载时会占用我应用程序的整个窗口。它包含两个JTextArea和一些按钮。我希望其中一个文本区域在面板加载时具有焦点,以便用户可以立即开始键入而不必首先单击文本区域。我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:4)

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

如果这不是您想要拥有焦点的组件,那么您需要在实现窗口后请求焦点。

Dialog Focus示例显示了几种方法。

答案 1 :(得分:2)

请参阅此处the Documentation,其中包含您正在搜索的内容(我认为):

  

也可以给出一个组件   以编程方式聚焦,例如何时   它的包含框架或对话框是   变得可见。此代码段显示   如何给出一个特定的组件   每次窗口获得焦点时都会聚焦   重点:

//Make textField get the focus whenever frame is activated.
frame.addWindowFocusListener(new WindowAdapter() {
    public void windowGainedFocus(WindowEvent e) {
        textField.requestFocusInWindow();
    }
});

答案 2 :(得分:0)

您只需要调用Jcomponent类的requestFocus方法,

public void requestFocus()

在要关注的Component上。 请求确保在为其父组件调用setVisible之后调用此方法。

例如: - 你有一个Jframe,你在其中添加了一个JTextArea,所以在调用之后你应该按以下顺序调用: -

jframe.setVisible(真); jarea.requestFocus();