[解決済み] KeyListener、keyPressedとkeyTypedの比較
2022-03-13 11:20:56
質問
JFrame(というか、JFrameを継承したクラス)を持っていて、F5キーを押したときにアクションを起こしたいのですが、どうすればいいですか?そこで、このクラスはKeyListenerを実装するようにした。そして、keyPressed、keyReleased、keyTypedという3つのメソッドを実装しました。
F5が押されたことをリッスンするには、どちらのメソッドを使用すればよいのでしょうか?現在、以下のようなメソッドを持っていますが、F5を押しても何も表示されません。
public void keyPressed(KeyEvent e) {
if(e.getKeyCode() == KeyEvent.VK_F5)
System.out.println("F5 pressed");
}
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
}
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}
解決方法は?
keyPressed - when the key goes down
keyReleased - when the key comes up
keyTyped - when the unicode character represented by this key is sent by the keyboard to system input.
個人的にはkeyReleasedを使いたいところです。指を上げたときだけ発射されます。
なお、keyTypedは印刷可能なもの(F5が可能かどうかは知りません)にのみ機能し、キーを押し続けていると何度でも発火すると思います。これは、キャラクターを画面上で移動させるような場合に便利です。
関連
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
エラー java.util.NoSuchElementException
-
アクセス制限について アプリケーションの種類がAPIでない(必要なライブラリの制限)。
-
java Mail send email smtp is not authenticated by TLS encryption solution.
-
JQuery DataTable 详解
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
自動配線された依存性のインジェクションに失敗しました。
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
起動時にEclipseエラーが発生しました。起動中に内部エラーが発生しました。java.lang.NullPoin: "Javaツーリングの初期化 "中に内部エラーが発生しました。
-
java 例外。Javaツールの初期化
最新
-
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 Error スレッド "AWT-EventQueue-0" で例外発生 java.lang.
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
エラーが報告されました。リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)のステータスで応答しました。
-
SpringBootApplication を型解決できない。
-
をインスタンス化することができません。
-
Javaクラスローダーにソースコードから潜り込む
-
JQuery DataTable 详解
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
ブラウザでの大容量ファイルスライスアップロード(Javaサーバサイド実装)