import java.awt.*;
import java.awt.event.*;
public class Test{
Frame frm;
TextArea txt;
public Test(){
/* コンポーネントを作ります。*/
txt = new TextArea();
/* フレームを作成します。*/
frm = new MenuFrame(txt);
frm.setSize(new Dimension(200,200));
/* レイアウトを設定します。*/
frm .setLayout(new BorderLayout());
/* フレームに登録します。*/
frm.add(txt , BorderLayout.CENTER);
/* フレームを表示させます。*/
frm.setVisible(true);
}
public static void main(String args[]){
new Test();
}
}
/* メニュー付きのフレームです */
class MenuFrame extends Frame implements ItemListener, ActionListener{
TextArea txt;
/* コンストラクタ */
/* イベントが起こった時のメッセージを表示するTextAreaを引数にとります */
MenuFrame(TextArea t){
txt = t;
/* メニューバーを作り、フレームにセットします */
MenuBar menubar = new MenuBar();
setMenuBar(menubar);
/* Menu A作成 */
/* Menuを作り、そこに入れるMenuItemを作ります。*/
/* そしてMenuにMenuItemを入れ(addメソッド)、さらにMenuをMenuBarに入れます。*/
/* 最後にリスナーをMenuItemに登録します。*/
Menu menuA = new Menu("A");
MenuItem a1 = new MenuItem("A-1");
MenuItem a2 = new MenuItem("A-2");
MenuItem a3 = new MenuItem("A-3");
menuA.add(a1);
menuA.add(a2);
menuA.add(a3);
menubar.add(menuA);
a1.addActionListener(this);
a2.addActionListener(this);
a3.addActionListener(this);
/* Menu B作成 */
/* MenuにMenu(b3)を入れることも可能です。*/
Menu menuB = new Menu("B");
MenuItem b1 = new MenuItem("B-1");
MenuItem b2 = new MenuItem("B-2");
Menu b3 = new Menu("B-3");
menuB.add(b1);
menuB.addSeparator();
menuB.add(b2);
menuB.add(b3);
menubar.add(menuB);
b1.addActionListener(this);
b2.addActionListener(this);
/* Menu B2 のサブメニュー作成 */
MenuItem b3_1 = new MenuItem("B-3-1");
MenuItem b3_2 = new MenuItem("B-3-2");
b3.add(b3_1);
b3.add(b3_2);
b3_1.addActionListener(this);
b3_2.addActionListener(this);
/* Menu C作成 */
/* ここではCheckboxMenuItemを使用しています。*/
Menu menuC = new Menu("C");
CheckboxMenuItem c1 = new CheckboxMenuItem("C-1");
CheckboxMenuItem c2 = new CheckboxMenuItem("C-2");
CheckboxMenuItem c3 = new CheckboxMenuItem("C-3");
menuC.add(c1);
menuC.add(c2);
menuC.add(c3);
menubar.add(menuC);
c1.addItemListener(this);
c2.addItemListener(this);
c3.addItemListener(this);
}
/* MenuItemが選択された */
public void actionPerformed(ActionEvent e){
txt.insert( ((MenuItem)e.getSource()).getLabel() + "\n" , 0);
}
/* CheckboxMenuItemが選択/選択解除された */
public void itemStateChanged(ItemEvent e){
txt.insert( ((MenuItem)e.getSource()).getLabel() + "\n" , 0);
}
}
|