フレームにメニューバーを表示する
JMenuBerクラスとJMenuクラス、JMenuItemクラスを使って、画面(フレーム)にメニューを表示します。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ExamJMenu {
public static void main(String args[]) {
JFrame jf = new JFrame("JFrame test");
jf.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
// JMenuBar <- JMenu <- JMenuItem or String
JMenu jm = new JMenu("File");
jm.add("Open");
jm.add( new JMenuItem("Save"));
JMenuBar jmb = new JMenuBar();
jmb.setBackground(Color.yellow);
jmb.add(jm);
jf.setJMenuBar(jmb);
jf.setBounds(20,50,700,500);
jf.setVisible(true);
}
}
|
![]() |
||
| 3つのクラスの関係 画面の黄色の部分がJMenuBar、JMenuBarに配置されているのがJMenu、Fileメニューに配置されているのがJMenuItemと構成されています。 JMenuItemはjavax.swing.AbstractButtonを継承しているので、リスナーを登録し、 イベント処理する事が可能です。 JMenuはJMenuItemを継承し、JMenuItemやJSeparatorを保持する機能が追加されています。JMenuを保持すれば、サブメニューを作る事もできます。 |
||
| setMenuber() method JFrameクラスは通常、直接コンポーネントを乗せることは出来ません。 専用のパネルを入手し、それにコンポーネントを配置しなければなりませんが、 JMenuBarはこのメソッドを使って直接フレームに配置します。 |
||