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);
/* A-3のショートカットをCtrl+Aに設定 */
a3.setShortcut(new MenuShortcut(KeyEvent.VK_A));
/* 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);
/* C-3のショートカットをCtrl+Shift+Cに設定 */
c3.setShortcut(new MenuShortcut(KeyEvent.VK_C, true));
}
/* 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);
}
}
|