2012-01-15 8 views
0

私は複数のJFrameを必要とするアプリケーションを開発しています。 JFrameはファイルに書き込みを行った後、破棄します。 KeyListenerを各クラスでKeyListenerを作成することなく、プロジェクト全体で同じキープレスをリッスンしたいと思っています。方法はありますか?KeyListenerをプロジェクト全体に追加するにはどうすればよいですか?

+4

通常、キーバインディングを使用しますが、リスナーかバインディングかは依然としてコンポーネントに関連付けられていますか。ちなみに、鈍いのは残念ですが、JFramesをスワッピングするあなたのデザインは臭いです。代わりにCardLayout経由でJPanelsを入れ替えることはできませんか?あなたのユーザーはこれを感謝します。 –

+1

ああ、決してそれを考えなかった。私は簡単に最悪のミスを犯しました。ありがとうございます。私はカードレイアウトを使い、プログラムの始めにキーバインディングを追加することができたと思います。 – Notchos

+0

*「私は複数のJFramesを必要とするアプリケーションを開発しています」*そうではありません。 1つの画面に多くのGUI要素を含めるには、十数通りの方法があります。 –

答えて

3

私はkey bindingsを使用することに同意しますが、私が受け入れた回答を削除することはできないので、私はここに残しておきます。

+1

@ジャスティン:「あらゆる問題に対して、シンプルでエレガントで間違った解決策があります」これは重要なケースです。これは、フォーカスを要求するGUIにコンポーネントを追加するとすぐに失敗するため、機能しません。 –

+0

が正しいのですが、彼は上記のコードを利用して、キーリストを追加する任意のコンポーネントにキーリストを追加することができます。 –

+0

-1、KeyListenerを使用すると悪い解決策です。すべてのコンポーネントにキーリスナーを追加する恐ろしい解決策。 – camickr

関連する問題