62,612
社区成员
发帖
与我相关
我的任务
分享
//Menu1.java
import java.awt.*;
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();
//MenuBar 类封装绑定到框架的菜单栏的平台概念。为了将该菜单栏与 Frame 对象关联,可以调用该框架的 setMenuBar 方法。
Menu f=new Menu("File");
Menu m=new Menu("Flavors");
Menu s=new Menu("Safety");
CheckboxMenuItem[] safety={
new CheckboxMenuItem("Guard"),
new CheckboxMenuItem("Hide")
};
MenuItem[] file={
new MenuItem("Open"),
new MenuItem("Exit")
};
MenuBar mb2=new MenuBar();
Menu fooBar=new Menu("fooBar");
MenuItem[] other={
new MenuItem("Foo"),
new MenuItem("Bar"),
new MenuItem("Baz")
};
Button b=new Button("Seap Menus");
public Menu1(){
for(int i=0;i<flavors.length;i++){
m.add(new MenuItem(flavors[i]));
if((i+1)%3==0){
m.addSeparator();//将一个分隔线或连字符添加到菜单的当前位置。
}
}
for(int i=0;i<safety.length;i++){
s.add(safety[i]);
}
f.add(s); //将safety这个菜单,加到file里面
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);
add("North",b);
for(int i=0;i<other.length;i++){
fooBar.add(other[i]);
}
mb2.add(fooBar);
}
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);
}
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 Cram!"+"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();
}
}
setDefaultCloseOperation(EXIT_ON_CLOSE);
菜单关闭按钮就直接试用System.exit(0);
要隐藏什么的可以用this.setVisible(false);
基本上是这样了[/quote]这个是不是只是在Frame中才用的,用来关闭这个框的。如果是extends Applet就不用使用这个语句了[/quote]
我没用过applet。。。JFrame和Frame是一样的额,现在也没谁用Frame了[/quote]额,这个我知道,但是因为thinking in java的jdk是1.0和1.1的所以好多都不用了,不过swing还是基于awt的。只是做了些升级对的,但是这个是不是只用在对话框和菜单里面。在其它地方都不用的啊。 [quote=引用 27 楼 zheweiyu 的回复:] [quote=引用 24 楼 qiantujava 的回复:] 要添加啊,要不你点击关闭按钮没反应的,也可以通过其他方法添加。。
setDefaultCloseOperation(EXIT_ON_CLOSE);
菜单关闭按钮就直接试用System.exit(0);
要隐藏什么的可以用this.setVisible(false);
基本上是这样了[/quote]这个是不是只是在Frame中才用的,用来关闭这个框的。如果是extends Applet就不用使用这个语句了[/quote]
我没用过applet。。。JFrame和Frame是一样的额,现在也没谁用Frame了对的,但是这个是不是只用在对话框和菜单里面。在其它地方都不用的啊。 [quote=引用 24 楼 qiantujava 的回复:] 要添加啊,要不你点击关闭按钮没反应的,也可以通过其他方法添加。。
setDefaultCloseOperation(EXIT_ON_CLOSE);
菜单关闭按钮就直接试用System.exit(0);
要隐藏什么的可以用this.setVisible(false);
基本上是这样了[/quote]这个是不是只是在Frame中才用的,用来关闭这个框的。如果是extends Applet就不用使用这个语句了对的,但是这个是不是只用在对话框和菜单里面。在其它地方都不用的啊。 要添加啊,要不你点击关闭按钮没反应的,也可以通过其他方法添加。。
setDefaultCloseOperation(EXIT_ON_CLOSE);
菜单关闭按钮就直接试用System.exit(0);
要隐藏什么的可以用this.setVisible(false);
基本上是这样了[quote=引用 28 楼 zheweiyu 的回复:] [quote=引用 26 楼 e274794140 的回复:] awt和swing我都没分清谁是谁,拿着现成的代码改着改着就都会了。 建议楼主去下个swing项目源码看看,自己再改改。
[quote=引用 26 楼 e274794140 的回复:] awt和swing我都没分清谁是谁,拿着现成的代码改着改着就都会了。 建议楼主去下个swing项目源码看看,自己再改改。
awt和swing我都没分清谁是谁,拿着现成的代码改着改着就都会了。 建议楼主去下个swing项目源码看看,自己再改改。
要添加啊,要不你点击关闭按钮没反应的,也可以通过其他方法添加。。
[quote=引用 6 楼 fudongrifdr 的回复:] [quote=引用 4 楼 zheweiyu 的回复:] [quote=引用 2 楼 fudongrifdr 的回复:] 不要搞awt了
[quote=引用 15 楼 zheweiyu 的回复:] [quote=引用 12 楼 longtian1213 的回复:] [quote=引用 10 楼 zheweiyu 的回复:] [quote=引用 9 楼 longtian1213 的回复:] [quote=引用 7 楼 zheweiyu 的回复:] [quote=引用 5 楼 longtian1213 的回复:] 最后那章关于AWT和Swing的,你就别看啦