目次へ

1.2. メニューの作成

続いてウィンドウにメニューを追加します。

 import javax.swing.*;

 public class SampleFrame{
   public static void main(String args[]){
     JFrame frame=new JFrame("test");
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.setSize(400,400);
     JMenuBar menuBar=new JMenuBar();
     frame.setJMenuBar(menuBar);
    JMenu fileMenu=new JMenu("file");
    menuBar.add(fileMenu);
    JMenuItem openMenu=new JMenuItem("open");
    fileMenu.add(openMenu);    
    frame.setVisible(true);
  }
}

メニューを追加するためにはまずメニューバー(メニューが追加される枠組み)を追加しなければなりません。JMenuBarクラスがそれに相当し、8・9行目で作成とウィンドウへの追加が行われています。

プルダウンメニューはJMenuクラスが担当します。10・11行目で「File」メニューを追加しています。メニューの各項目はJMenuItemクラスが担当します。12行目・13行目で「open」メニューが追加されています。このサンプルプログラムを実行させると下記のようなウィンドウが表示されます。

サンプルプログラム実行の図

メニューの概観の作成はこのように非常に簡単なものです。実際のプログラミングでは、メニューを選択したときにどのような動作をさせるかが重要ですが、これについては後の章で説明します。

(実習課題2)

実習課題1のプログラムに追加し、6.2のサンプルプログラムと同様のものを実現しなさい。

解答例はこちら

(実習課題3)

JMenuクラスのインスタンスには、JMenuItemだけでなくJRadioButtonMenuItemやJCheckBoxMenuItemクラスのインスタンスを追加する事もできます。実習課題2のプログラムを更に改良し、2つのクラスを使用したメニューを作成しなさい。

解答例はこちら

(実習課題4)

JMenuクラスのインスタンスには、JMenuクラス自身のインスタンスを追加する事もできます。これにより階層的なメニューを作成する事ができます。実習課題3のプログラムを更に改良し、階層的なメニューを持つウィンドウを作成しなさい。

解答例はこちら

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp