swingで、画面のボタンを使わずにキーボードで操作したいのですが、ネットで調べてもアプレットで使用している例ばかりでした。
JButtonなどにつけられるActionListenerみたいに使うにはどうすればいいですか?アプレットはまだ勉強してないので全くわかりません。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
そんなことはありません。
AppletやAWTの場合と同じように、Swingでも使えます。
同じように使えるので、古くからたくさんあるAppletのほうがヒットしてしまうのでしょう。
Swingの記事を見つけたいなら、キーワードに "Swing" を入れるか、
今回の場合ならそのまま "jbutton keylistener" で検索すれば見つかると思います。
(追記)
KeyStroke
とInputMap
,ActionMap
の組み合わせで、キーバインドのアクションを定義できます。
例:
lang
1// (JFrameのコンストラクター内) 2 3// import java.awt.event.*; 4// import javax.swing.*; 5 6InputMap imap = getRootPane().getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); 7ActionMap amap = getRootPane().getActionMap(); 8 9// キーバインド: Wキー 10KeyStroke ksW = KeyStroke.getKeyStroke(KeyEvent.VK_W, 0); 11// アクションキー 12String akDoSomething = "do-something"; 13// アクション 14Action action = new AbstractAction() { 15 @Override 16 public void actionPerformed(ActionEvent evt) { 17 System.out.println(evt); 18 } 19}; 20imap.put(ksW, akDoSomething); 21amap.put(akDoSomething, action);
参考リンク:
JDialogをESCキーで閉じる - Java Swing Tips
http://ateraimemo.com/Swing/InputMap.html
javax.swing.KeyStroke,InputMap,ActionMap - Java SE 8 API ドキュメント
http://docs.oracle.com/javase/jp/8/api/javax/swing/KeyStroke.html
http://docs.oracle.com/javase/jp/8/api/javax/swing/InputMap.html
http://docs.oracle.com/javase/jp/8/api/javax/swing/ActionMap.html
投稿2015/11/30 13:53
編集2015/12/01 21:40総合スコア9388
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/12/01 12:25
2015/12/01 12:33
2015/12/01 21:42
2015/12/02 00:06
2015/12/02 02:34
2015/12/04 03:55