[解決済み] JFrameのKeyListenerの無応答性
2023-06-22 06:32:32
質問
を実装しようとしています。
KeyListener
を実装しようとしています。
JFrame
. コンストラクタでは、次のコードを使っています。
System.out.println("test");
addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) { System.out.println( "tester"); }
public void keyReleased(KeyEvent e) { System.out.println("2test2"); }
public void keyTyped(KeyEvent e) { System.out.println("3test3"); }
});
実行すると
test
のメッセージがコンソールに表示されます。しかし、キーを押しても、他のメッセージは表示されず、あたかも
KeyListener
がそこになかったかのように、他のメッセージは表示されません。
にフォーカスが当たっていないからではないか、と考えていました。
JFrame
にフォーカスされていないため、それらの
KeyListener
はイベントを受信しません。 でも、確かにそうですね。
何か見落としがあるのでしょうか?
どのように解決するのですか?
keyListenerを必要なすべてのコンポーネントに追加する必要があります。フォーカスを持つコンポーネントのみがこれらのイベントを送信します。例えば、JFrame内にTextBoxが1つしかない場合、そのTextBoxにフォーカスがあります。したがって、このコンポーネントにもKeyListenerを追加する必要があります。
処理方法は同じです。
myComponent.addKeyListener(new KeyListener ...);
注意:JLabelのようにフォーカスできないコンポーネントもあります。
それらをフォーカス可能に設定するためには
myComponent.setFocusable(true);
関連
-
スレッド "main "での例外 java.util.NoSuchElementException in Java 問題解決済み
-
Git Pull Failed マージされていないファイルがあるため、Pull できません。
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
Jsoup-Crawlingの動作
-
Javaがテキストファイルを読み込む
-
API の戻り値を処理するために ResponseEntity を使用する
-
Java:未解決コンパイル問題の解決方法
-
[解決済み] KeyListener、keyPressedとkeyTypedの比較
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
java.sql.SQLException: executeQuery()でデータ操作文を発行できません。
-
プロジェクトの依存関係を解決できない。
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
アノテーション「@Retention」の役割
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
Javaがエラーで実行される、選択が起動できない、最近起動したものがない
-
Web Project JavaでPropertiesファイルを読み込むと、「指定されたファイルがシステムで見つかりません」というソリューションが表示されます。
-
git pull appears現在のブランチに対するトラッキング情報がありません。
-
linux ant Resolve error: main class not found or couldn't be loaded org.apache.tools.ant.launcher.
-
WeChat小プログラム Bluetooth通信 Bluetoothモジュールデモ