Java默认表单操作或按钮

时间:2009-08-03 13:11:13

标签: java user-interface swing default action

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

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

我知道可以在JTextField上使用setAction来实现这一点,但我想知道是否有比在每个字段上设置操作更简单/更好的方法。我试过四处寻找,但似乎找不到我能找到的这个问题的标准解决方案!

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

3 个答案:

答案 0 :(得分:3)

您可能需要使用getRootPane().setDefaultButton(...)收听制表符开关并重置当前标签的默认按钮。

答案 1 :(得分:1)

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

您可以将键监听器添加到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
    }
  }
});

答案 2 :(得分:1)

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

以后快速谷歌...

是的 - 这似乎是Sun推荐的方式,如text field trail...

所示