1

HTMLフォームでは、テキストフィールドで「Enter」キーを押すと、通常、フォームが送信されます。

私はJavaSwingで検索パネルを実装していますが、ユーザーがこれを期待していると思うのと同じ機能を含めたいと思います。

JTextFieldでsetActionを使用してこれを実現できることは知っていますが、すべてのフィールドにアクションを設定するよりも簡単で優れた方法があるかどうか疑問に思いました。私は周りを見回してみましたが、私が見つけることができるこの問題の標準的な解決策はないようです!

編集:getRootPane()。setDefaultButton(...)がありますが、これはフレームのデフォルトボタンを設定するだけのようです。タブ付きのペインを使用しているので、それはうまくいきません。各パネルにはフォームがあります。

4

3 に答える 3

3

タブスイッチをリッスンし、を使用して現在のタブのデフォルトボタンをリセットする必要がある場合がありますgetRootPane().setDefaultButton(...)

于 2009-08-03T13:20:58.193 に答える
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
    }
  }
});
于 2009-08-03T13:26:49.147 に答える
1

IIRC、JTextFieldにActionListenerを追加すると、必要な機能が提供されます

後でグーグルクイック...

うん-そしてこれは、テキストフィールドトレイルに示されているように、Sunが推奨する方法のようです...

于 2009-08-03T13:39:45.860 に答える