0

JTextAreaSwing コードにコンポーネントがあり、JTextArea.

上記の JavaDocs によると、その内部に aDocumentListenerを追加できます。Documentモデル。ただし、 を実装するときは、次の実装DocumentListenerを作成する必要があります。

  • removeUpdate
  • insertUpdate
  • changedUpdate

これらは、私が期待していたタイプのメソッドではありませんでした! 、 などのメソッドが表示されることを期待していました。onKeyDown(KeyEvent e)onKeyUp(KeyEvent e

だから私は尋ねます:JTextAreaキーアップ/ダウンイベントに応答するにはどうすればよいですか? 前もって感謝します!

4

2 に答える 2

3

これは、キー バインディングを使用するのに適した状況です。すぐに、これに関する詳細情報をお知らせします。一般に、KeyListener は低レベルの構造と見なされ、この種のことには低すぎる可能性があるため、KeyListener の使用を避けようとします。多くの場合、キー バインディングが好まれます (キー バインディング チュートリアルに従って)。


編集1
ここに行きます:キーバインディングの使用方法

Swingチュートリアルからの直接引用:

キー バインドの代わりに、キー リスナーを使用します。キー リスナーは、キーボード入力への低レベル インターフェイスとしての役割を果たしますが、個々のキーに応答するには、キー バインディングの方が適切であり、コードの保守が容易になる傾向があります。コンポーネントにフォーカスがないときにキーバインディングがアクティブになる場合、キーリスナーも困難です。キー バインドの利点のいくつかは、ある程度自己文書化されていること、包含階層を考慮していること、再利用可能なコードのチャンク (Action オブジェクト) を奨励していること、およびアクションを簡単に削除、カスタマイズ、または共有できることです。また、アクションがバインドされているキーを簡単に変更できます。アクションのもう 1 つの利点は、アクションがどのコンポーネントにアタッチされているかを追跡することなく、アクションを簡単に無効にする方法を提供する有効な状態があることです。


編集 2コンポーネントに入力されたテキストをフィルタリング
し たい場合や、 . この機能の全体的な目標が何であるかをまだ私たちに伝えていないので、あなたの現在の質問によって私たちはいくらか妨げられていると思います. より完全で正確な回答を提供できるように、詳細を教えてください。DocumentFilter

于 2012-10-16T20:43:27.377 に答える
1

使用( ComponentaddKeyListenerから継承)

于 2012-10-16T20:43:17.057 に答える