「Java/swing/サンプル/メニューを作る」の編集履歴(バックアップ)一覧はこちら

Java/swing/サンプル/メニューを作る」(2012/09/22 (土) 13:59:05) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

swingでメニューを表示するサンプルです。 *** ポイント - JMenuBarにJMenuを追加、JMenuにJMenuItemを追加という工程を重ねてメニューを作ります。 - メニューをクリックして何かするには、アクションリスナーを設定します。 - File(F)みたいな使い方はsetMnemonic('F')って書きます。 - (F)は自分で書きます。setMnemonic('F')したからって自動的に(F)は付きません。 - setIconでアイコンも設定でます。 *** 実行結果 &ref(swingメニューを表示する.png) *** ソース &ref(MenuTest.java) #highlight(){{ import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.plaf.metal.MetalIconFactory; // メニューのテスト // ・JMenuBarにJMenuを追加、JMenuにJMenuItemを追加という工程を重ねてメニューを作ります。 // ・メニューをクリックして何かするには、アクションリスナーを設定します。 // ・File(F)みたいな使い方はsetMnemonic('F')って書きます。 // ・(F)は自分で設定する。setMnemonic('F')したからって自動的に(F)は付きません。 // ・setIconでアイコンも設定でます。 public class MenuTest extends JFrame implements ActionListener { public static void main(String[] args) { new MenuTest(); } public MenuTest() { init(); } private void init() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("メニューのテスト中"); setBounds(100, 100, 200, 100); JMenuBar mb = new JMenuBar(); JMenu m = new JMenu("メニュー(M)"); m.setMnemonic('M'); // 意味もなくアイコンを設定 m.setIcon(MetalIconFactory.getFileChooserHomeFolderIcon()); JMenuItem item1 = new JMenuItem("閉じる(C)"); item1.setMnemonic('C'); // アクションの実装方法1 無名のアクションリスナーを直接突っ込む item1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); m.add(item1); mb.add(m); // JMenuにJMenuを追加して、メニューに階層を作ることもできます JMenu subMenu = new JMenu("閉じる?"); // アクションの実装方法2 メニューに名前を設定し、アクションリスナーを実装したクラスで名前を判定して挙動を制御する // こっちを多用する方がいいのかも JMenuItem item2 = new JMenuItem("閉じる"); item2.setName("menu.close"); item2.addActionListener(this); JMenuItem item4 = new JMenuItem("閉じない"); subMenu.add(item4); subMenu.add(item2); m.add(subMenu); setJMenuBar(mb); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { // インスタンス判定 // setName/getNaemはComponentで実装してるのでComponentかどうか判定 if (e.getSource() instanceof Component) { Component c = (Component) e.getSource(); // 名前を取得 String name = c.getName(); // 名前で判定 if ("menu.close".equals(name)) { System.exit(0); } } } } }} *** アフィリエイト #amazon2() *** ここまで
swingでメニューを表示するサンプルです。 *** ポイント - JMenuBarにJMenuを追加、JMenuにJMenuItemを追加という工程を重ねてメニューを作ります。 - メニューをクリックして何かするには、アクションリスナーを設定します。 - File(F)みたいな使い方はsetMnemonic('F')って書きます。 - (F)は自分で書きます。setMnemonic('F')したからって自動的に(F)は付きません。 - setIconでアイコンも設定でます。 *** 実行結果 &ref(swingメニューを表示する.png) *** ソース &ref(MenuTest.java) #highlight(){{ import java.awt.Component; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.plaf.metal.MetalIconFactory; // メニューのテスト // ・JMenuBarにJMenuを追加、JMenuにJMenuItemを追加という工程を重ねてメニューを作ります。 // ・メニューをクリックして何かするには、アクションリスナーを設定します。 // ・File(F)みたいな使い方はsetMnemonic('F')って書きます。 // ・(F)は自分で設定する。setMnemonic('F')したからって自動的に(F)は付きません。 // ・setIconでアイコンも設定でます。 public class MenuTest extends JFrame implements ActionListener { public static void main(String[] args) { new MenuTest(); } public MenuTest() { init(); } private void init() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setTitle("メニューのテスト中"); setBounds(100, 100, 200, 100); JMenuBar mb = new JMenuBar(); JMenu m = new JMenu("メニュー(M)"); m.setMnemonic('M'); // 意味もなくアイコンを設定 m.setIcon(MetalIconFactory.getFileChooserHomeFolderIcon()); JMenuItem item1 = new JMenuItem("閉じる(C)"); item1.setMnemonic('C'); // アクションの実装方法1 無名のアクションリスナーを直接突っ込む item1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); m.add(item1); mb.add(m); // JMenuにJMenuを追加して、メニューに階層を作ることもできます JMenu subMenu = new JMenu("閉じる?"); // アクションの実装方法2 メニューに名前を設定し、アクションリスナーを実装したクラスで名前を判定して挙動を制御する // こっちを多用する方がいいのかも JMenuItem item2 = new JMenuItem("閉じる"); item2.setName("menu.close"); item2.addActionListener(this); JMenuItem item4 = new JMenuItem("閉じない"); subMenu.add(item4); subMenu.add(item2); m.add(subMenu); setJMenuBar(mb); setVisible(true); } @Override public void actionPerformed(ActionEvent e) { // インスタンス判定 // setName/getNaemはComponentで実装してるのでComponentかどうか判定 if (e.getSource() instanceof Component) { Component c = (Component) e.getSource(); // 名前を取得 String name = c.getName(); // 名前で判定 if ("menu.close".equals(name)) { System.exit(0); } } } } }} *** アフィリエイト #amazon2() *** ここまで

表示オプション

横に並べて表示:
変化行の前後のみ表示: