package com.qilu.test;
import java.awt.*;
import org.junit.Test;
public class Menu1 extends Frame {
String[] flavors = { "Chocolate", "Strawberry", "Vanilla Fudge Swirl",
"Mint Chip", "Mocha Almond Fudge", "Rum Raisin", "Praline Cream",
"Mud Pie" };
TextField t = new TextField("No flavor", 30);
MenuBar mb1 = new MenuBar();
Menu f = new Menu("File");
Menu m = new Menu("Flavors");
Menu s = new Menu("Safety");
// Alternative approach:
CheckboxMenuItem[] safety = { new CheckboxMenuItem("Guard"),
new CheckboxMenuItem("Hide") };
MenuItem[] file = { new MenuItem("Open"), new MenuItem("Exit") };
// A second menu bar to swap to:
MenuBar mb2 = new MenuBar();
Menu fooBar = new Menu("fooBar");
MenuItem[] other = { new MenuItem("Foo"), new MenuItem("Bar"),
new MenuItem("Baz"), };
Button b = new Button("Swap Menus");
public Menu1() {
for (int i = 0; i < flavors.length; i++) {
m.add(new MenuItem(flavors[i]));
// Add separators at intervals:
if ((i + 1) % 3 == 0)
m.addSeparator();
}
for (int i = 0; i < safety.length; i++)
s.add(safety[i]);
f.add(s);
for (int i = 0; i < file.length; i++)
f.add(file[i]);
mb1.add(f);
mb1.add(m);
setMenuBar(mb1);
t.setEditable(false);
add("Center", t);
// Set up the system for swapping menus:
add("North", b);
for (int i = 0; i < other.length; i++)
fooBar.add(other[i]);
mb2.add(fooBar);
}
@Test
public boolean handleEvent(Event evt) {
if (evt.id == Event.WINDOW_DESTROY)
System.exit(0);
else
return super.handleEvent(evt);
return true;
}
public boolean action(Event evt, Object arg) {
if (evt.target.equals(b)) {
MenuBar m = getMenuBar();
if (m == mb1)
setMenuBar(mb2);
else if (m == mb2)
setMenuBar(mb1);
} else if (evt.target instanceof MenuItem) {
if (arg.equals("Open")) {
String s = t.getText();
boolean chosen = false;
for (int i = 0; i < flavors.length; i++)
if (s.equals(flavors[i]))
chosen = true;
if (!chosen)
t.setText("Choose a flavor first!");
else
t.setText("Opening " + s + ". Mmm, mm!");
} else if (evt.target.equals(file[1]))
System.exit(0);
// CheckboxMenuItems cannot use String
// matching; you must match the target:
else if (evt.target.equals(safety[0]))
t.setText("Guard the Ice Cream! " + "Guarding is "
+ safety[0].getState());
else if (evt.target.equals(safety[1]))
t.setText("Hide the Ice Cream! " + "Is it cold? "
+ safety[1].getState());
else
t.setText(arg.toString());
} else
return super.action(evt, arg);
return true;
}
public static void main(String[] args) {
Menu1 f = new Menu1();
f.resize(300, 200);
f.show();
}
}
代码编写时间:70%
测试时间 :30%