• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Java MenuShortCut に関して)

Javaのメニューでファイルを開く方法について

このQ&Aのポイント
  • Javaのメニューアイテムにショートカットを設定する方法を知りたいです。
  • メニューアイテムにショートカットを作成することはできましたが、メニュー自体のショートカットの作り方について悩んでいます。
  • Alt+Fキーを押すことでfileメニューを開くようにする方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • coral0
  • ベストアンサー率92% (13/14)
回答No.1

残念ながらMenuItemクラスではALTマスクを掛けたショートカットキーを作成することはなかなか難しいですが、JMenuを使用すれば、ALTマスクを掛けたショートカットキーを作成することは簡単です。 JMenuの作成の仕方は、基本的にはMenuと同じですが、一つ違うのが、ショートカットキーの指定の仕方です。 (MenuItem).setAccelerator(KeyStroke) と指定しますが、KeyStrokeクラスについては、JavaAPIドキュメントなどを参照してみてください。 以下にALT+Fでメニューが動作する例を書きますが、Menuクラスの使い方が解っておられる方でしたら、すぐに意味が解ると思います。 Menuクラスと違い、JMenuクラスでは、ありとあらゆるショートカットキーを使用することが出来ます。 一つ注意点を挙げるとすれば、このJMenuは、JFrameクラスに実装してください。 Frameクラスに対してJMenuを実装すると、描画が異常状態になる可能性があります。 +-------------+ | MenuTest.java | -------------------------------------------------- import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MenuTest extends JFrame { public MenuTest() { super(); super.setSize(200, 100); JMenuBar menuBar = new JMenuBar(); JMenu menu = new JMenu("File"); JMenuItem menuItem = new JMenuItem("new"); menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, KeyEvent.ALT_MASK)); menuItem.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e ) { System.out.println("KeyPress."); } }); menu.add(menuItem); menuBar.add(menu); super.setJMenuBar(menuBar); super.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); super.setVisible(true); } public static void main(String[] args) { MenuTest test = new MenuTest(); } } --------------------------------------------------

参考URL:
http://www.javadrive.jp/tutorial/jmenu/index4.html
bob2_mh
質問者

お礼

 coral0さん、サンプル・URLまで載せて下さい  まして、どうもありがとうございます。  Swingかぁ‥。ちょっと厳しいかもしれないですが、  挑戦してみます!    

関連するQ&A