- 締切済み
ショートカットの作り方
Javaアプリケーションを製作中で、ショートカットキーを作りたいのですが、メニュー部分を作ってないので Ctrl+いずれかのキーというショートカットが作れないのです。 そこで、ひとつのキーを押すだけでショートカットキーのような機能を持たせたいのですが、どうしたらよいのでしょうか? 参考となる本等ありましたら、教えていただけないしょうか? よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- takaP-
- ベストアンサー率79% (83/105)
>ファンクションキーを押すとページジャンプするような方法は可能でしょうか? ページジャンプがどういうものか分からないのでお答えできませんが、ファンクションキーでしたら定数がありますよ。 java.awt.event.KeyEvent# VK_F1 ~ VK_F24 addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e.getKeyCode()==KeyEvent.VK_F*){ //ページジャンプ(?)の処理 } } }); *の処に希望の数値を入れれば良いだけです。
- takaP-
- ベストアンサー率79% (83/105)
#1の方もおっしゃっているように、何もメニュー(バー?) を作らなくても Ctrl+Key の処理は出来ますよ。 この動作をするときにフォーカスが当たっている(べき) コンポーネントに。。。 addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e.getKeyCode()==KeyEvent.VK_A && e.getModifiers()==InputEvent.CTRL_MASK){ // 目的の処理 } } }); としておけば、上記の場合でしたら Ctrl+A のイベントが拾えます。
- arukamun
- ベストアンサー率35% (842/2394)
こんにちは、No.1のarukamunです。 すみません、タイプミスしてしまいました。 case 'A' ; case 'a' ; と書いていますが、;(セミコロン)ではなく:(コロン)です。
- arukamun
- ベストアンサー率35% (842/2394)
こんにちは public boolean keyDown(Event e,int key) { if ( ( e.modifiers & Event.ALT_MASK ) != 0 ){ // ALT + ? switch ( key ){ case 'A' ; case 'a' ; // ALT + A break ; // ・・・ } } else if ( ( e.modifiers & Event.META_MASK ) != 0 ){ // META + ? switch ( key ){ case 'A' ; case 'a' ; // META + A break ; // ・・・ } } else if ( ( e.modifiers & Event.CTRL_MASK ) != 0 ){ // Ctrl + ? switch ( key ){ case 'A' ; case 'a' ; // Ctrl + A break ; // ・・・ } } else { switch ( key ){ case 'A' ; case 'a' ; // A break ; // ・・・ } } } Javaが出たばかりの頃は上記の様な事をやっていた様な気がしますが、最近のJavaの傾向は知りません。
お礼
ありがとうござました。参考にさせていただきました。 ところで、ファンクションキーを押すとページジャンプするような方法は可能でしょうか?もしよろしかったら教えてください。