1

在 HTML 表单中,如果您在文本字段中按“输入”,表单通常会提交。

我正在 Java Swing 中实现一个搜索面板,并且我想包含与我认为用户期望的相同的功能。

我知道可以在 JTextField 上使用 setAction 来完成此操作,但是我想知道是否有比在每个字段上设置操作更简单/更好的方法。我试过环顾四周,但似乎没有我能找到的这个问题的标准解决方案!

编辑:有 getRootPane().setDefaultButton(...),但这似乎只是为框架设置默认按钮。这对我不起作用,因为我使用的是选项卡式窗格,每个面板上都有一个表单!

4

3 回答 3

3

您可能需要监听选项卡开关并使用 重置当前选项卡的默认按钮getRootPane().setDefaultButton(...)

于 2009-08-03T13:20:58.193 回答
1

我们在我们的一个应用程序中遇到了同样的问题。

您可以将 Key Listener 添加到 JTextField 的编辑器中:

txtField.getEditor().getEditorComponent().addKeyListener(new java.awt.event.KeyAdapter()
{
  @Override
  public void keyTyped(final KeyEvent e)
  {
    super.keyTyped(e);

    // Check if the user pressed Enter
    if (e.getKeyChar() == '\n')
    {
      // Action here/button press here
    }
  }
});
于 2009-08-03T13:26:49.147 回答
1

IIRC,将 ActionListener 添加到 JTextField 将提供您想要的功能

稍后快速谷歌...

是的 - 这似乎是 Sun 推荐的方式,如文本字段跟踪所示......

于 2009-08-03T13:39:45.860 回答