TOP →
Java →
Swing →
JMenuBar,JMenu,JMenuItem → This Page
JMenuItem@Swing サンプル04
概要
Java -
Swing -
JMenuItem のサンプルです。
・キーボードアクセラレーターの設定
解説
メニューアイテムにキーボードアクセラレーターを設定しています。
キーボードアクセラレーターとはニーモニックに似た機能で、いわゆるショートカットキーです。
JMenuItem のメソッド
メソッド/説明 | 引数 | 引数説明 |
setAccelerator(KeyStroke keyStroke)
キーボードアクセラレーターを設定
|
keyStroke |
アクセラレータとして機能する KeyStroke |
KeyStroke のメソッド
メソッド/説明 | 引数 | 引数説明 |
static KeyStroke getKeyStroke(int keyCode, int modifiers)
KeyStroke の共有インスタンスを返す
|
keyCode |
キーコード
設定値(定数) | 内容 |
java.awt.event.KeyEvent.VK_A |
Aキー |
java.awt.event.KeyEvent.VK_Z |
Zキー |
java.awt.event.KeyEvent.VK_0 |
0キー |
java.awt.event.KeyEvent.VK_F1 |
F1キー |
java.awt.event.KeyEvent.VK_ENTER |
ENTERキー |
java.awt.event.KeyEvent.VK_SPACE |
SPACEキー |
java.awt.event.KeyEvent.VK_TAB |
TABキー |
|
modifiers |
修飾子
設定値(定数) | 内容 |
java.awt.event.InputEvent.ALT_DOWN_MASK |
ALTキー |
java.awt.event.InputEvent.CTRL_DOWN_MASK |
CTRLキー |
java.awt.event.InputEvent.SHIFT_DOWN_MASK |
SHIFTキー |
|
サンプルではいくつかのキー+修飾子の組み合わせで設定しています。
サンプルイメージ
サンプルソース
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
import javax.swing.border.BevelBorder;
/**
* JMenuItem サンプル04
* ・キーボードアクセラレーターの設定
*
* @author みっちー
*/
public class JMenuItem04 extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
/** ラベル */
JLabel label = null;
/**
* 開始メソッド
*
* @param args パラメータ
*/
public static void main(String[] args) {
JMenuItem04 frame = new JMenuItem04();
// 閉じるボタンをクリックされた場合の動作を設定
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// ウインドウのタイトルを設定
frame.setTitle("JMenuItem サンプル04");
// フレームの X座標、Y座標、幅、高さを設定
frame.setBounds(100, 200, 400, 200);
// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
frame.setVisible(true);
}
/**
* コンストラクタ
*/
public JMenuItem04() {
// パネルを作成
JPanel panelBase = new JPanel();
// メニューバーを作成
JMenuBar menubar = new JMenuBar();
// メニューを作成
JMenu menu1 = new JMenu("File");
JMenu menu2 = new JMenu("Edit");
JMenu menu3 = new JMenu("Help");
// メニューバーにメニューを追加
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
// メニューアイテムを作成
JMenuItem menu1Item1 = new JMenuItem("New");
JMenuItem menu1Item2 = new JMenuItem("Open");
JMenuItem menu1Item3 = new JMenuItem("Save");
JMenuItem menu1Item4 = new JMenuItem("Refresh");
JMenuItem menu1Item5 = new JMenuItem("Exit");
// キーボードアクセラレーターの設定
menu1Item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_DOWN_MASK));
menu1Item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_DOWN_MASK));
menu1Item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_DOWN_MASK));
menu1Item4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5, InputEvent.SHIFT_DOWN_MASK));
menu1Item5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E, InputEvent.ALT_DOWN_MASK));
// アクションコマンド追加
menu1Item1.setActionCommand("New");
menu1Item2.setActionCommand("Open");
menu1Item3.setActionCommand("Save");
menu1Item4.setActionCommand("Refresh");
menu1Item5.setActionCommand("Exit");
// アクションリスナー追加
menu1Item1.addActionListener(this);
menu1Item2.addActionListener(this);
menu1Item3.addActionListener(this);
menu1Item4.addActionListener(this);
menu1Item5.addActionListener(this);
// メニューにアイテムを追加
menu1.add(menu1Item1);
menu1.add(menu1Item2);
menu1.add(menu1Item3);
menu1.add(menu1Item4);
menu1.add(menu1Item5);
// メニューバーを追加
setJMenuBar(menubar);
// ラベルを作成
label = new JLabel("");
label.setPreferredSize(new Dimension(200, 20));
label.setBorder(new BevelBorder(BevelBorder.LOWERED));
panelBase.add(label);
// パネルを追加
getContentPane().add(panelBase);
}
/**
* アクション
*/
public void actionPerformed(ActionEvent e){
label.setText(e.getActionCommand());
}
}
サンプルソースのダウンロード
ソースのダウンロード(Eclipse用のプロジェクトファイルも同梱)
更新履歴
2016/05/13 新規作成
TOP →
Java →
Swing →
JMenuBar,JMenu,JMenuItem → This Page