////////////////////////////////////////////////////////////////////////////////
// << s131b.java >>
//
//  Swing(3):フレーム(メニュー、イベント処理)
//
//  メニュー項目の「赤」を選択すると、フレーム背景色が赤になる。
//  メニュー項目の「緑」を選択すると、フレーム背景色が緑になる。
//
////////////////////////////////////////////////////////////////////////////////

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class s131b extends JFrame implements ActionListener {

  JMenuBar mb;
  JMenu m;
  JMenuItem mi1,mi2;
  Container c;

  ////////////////////
  // コンストラクタ //
  ////////////////////
  s131b(String t) { 

    super(t);

    // フレームからコンテンツペインの取得。
    c = this.getContentPane();

    // メニューバーの作成。
    mb = new JMenuBar();
    // メニューバーmbをコンテンツペイン内に追加。 
    this.setJMenuBar(mb);

    // メニューの作成。
    m = new JMenu("背景の色");
    // メニューmをメニューバーmbに追加。
    mb.add(m); 

    // メニュー項目の作成。
    mi1 = new JMenuItem("赤");
    mi2 = new JMenuItem("緑");
    // メニュー項目(mi1,mi2)をメニューmに追加。
    m.add(mi1);
    m.add(mi2);

    // イベントリスナの登録。
    mi1.addActionListener(this);
    mi2.addActionListener(this);
  }        

  //////////////////////////////////////////////
  // ActionListenerインターフェースのメソッド //
  //////////////////////////////////////////////
  public void actionPerformed(ActionEvent e) {
    if( e.getSource() == mi1 ) { c.setBackground(Color.red); }
    if( e.getSource() == mi2 ) { c.setBackground(Color.green); }
  }
    
  /////////////////
  // mainメソッド//
  /////////////////
  public static void main(String[] args) {

    // フレームの作成。
    s131b f = new s131b("メニュー付きフレーム");

    // フレームの大きさを設定。

    f.setSize(300,200);

    // 「閉じる」ボタンがクリックされたとき、プログラムを終了する。
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    // フレームの表示。
    f.setVisible(true);
  }
}
実行結果
% javac s131b.java
% java s131b
実行直後


「背景の色」のクリック後


「緑」のクリック後