Javaのお勉強



メニューバーを配置@Javaのお勉強

JMenuBarを配置します。

JFrameを継承したクラスを作成します。

コンストラクタにて、フレームの初期化を行います。
メニューバー(JMenuBar)を生成します。

メニューバーに配置するメニュー(JMenu)とアイテム(JMenuItem)を生成します。
メニューアイテムには、ActionListenerを追加します。

メニューアイテムをメニューに追加し、
メニューをメニューバーに追加します。

Containerにメニューバーを配置し、
フレームの設定を行います。

クラスのmainメソッドで、
作成したクラスを生成して実行します。


import javax.swing.*;

public class Main extends JFrame {

    private JMenuBar menuBar;

    //コンストラクタ
    public Main() {

        //メニューバー生成
        //javax.swing.JMenuBar
        menuBar = new javax.swing.JMenuBar();

        //JMenu生成
        JMenu menuA = new JMenu("メニュー");

        //ショートカット設定(Alt+F)
        menuA.setMnemonic('F');

        //JMenuItem生成して、JMenuに追加
        JMenuItem menuItem1 = new JMenuItem("実行");
        JMenuItem menuItem2 = new JMenuItem("閉じる");

        menuItem1.setMnemonic('E');
        menuItem2.setMnemonic('X');

        //ActionListener追加
        menuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuItem1ActionPerformed(evt);
            }
        });
        menuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                menuitem2ActionPerformed(evt);
            }
        });

        //メニューに追加
        menuA.add(menuItem1);
        menuA.add(menuItem2);

        //メニューバーにJMenu追加
        menuBar.add(menuA);

        //コンテナーに配置
        getContentPane().add(menuBar);

        //フレーム設定
        getContentPane().setLayout(new java.awt.FlowLayout());
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setTitle("メニューバー");
        setSize(300, 200);
    }

    //menuItem1
    private void menuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
        System.out.println("実行");
    }

    //menuItem2
    private void menuitem2ActionPerformed(java.awt.event.ActionEvent evt) {
        System.out.println("閉じる");
    }

    public static void main(String[] args) {
        //非同期処理
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Main().setVisible(true);
            }
        });
    }
}




Copyright (C) 2008-2026 Javaのお勉強. All Rights Reserved.