对着thinking in java敲得一段AWT代码。
//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();
}
}第一个问题:
在这段代码中,
public boolean handleEvent(Event evt){
if(evt.id==Event.WINDOW_DESTROY){
System.exit(0);
}
else
return super.handleEvent(evt);
return true;
}
一定要加么?
第二个问题
if(evt.id==Event.WINDOW_DESTROY){
System.exit(0);
是在什么时候用的,是不是只在对话框和菜单中才需要添加的。
第三个问题
还有handleEvent和action到底有什么区别?handleEvent只是action的一个补充么?
最后一个,不知道哪路大神能给个联系方式,能平时指导下小弟编程的,我将感激涕零,三跪九叩,天天敬香。本人属于那种一点不通,再点还是不通,脑容量不大,却喜欢乱想东西的,(额,今天不是情人节了,不用担心这是找男人,甚至是女人。不过有女人的话那是再好不过了)要是哪位不嫌弃就顺手牵走吧,还是挺听话的,叫我上床绝不下床,加我脱裤绝不脱衣。还可以暖床,喂孩子。咳咳。垃圾话就这么多了,重点是,找师傅啊!!!!

解决方案 »

  1.   

    不看awt直接看swing?thinking in java的swing,不先看AWT前面的东西看不懂的啊!!正在初学阶段,想把所有的东西系统过一遍。而且在看翻译版的时候,有些话怎么读都别扭,英文的看不进去。。不知道有什么好的建议么
      

  2.   

    不看awt直接看swing?thinking in java的swing,不先看AWT前面的东西看不懂的啊!!正在初学阶段,想把所有的东西系统过一遍。而且在看翻译版的时候,有些话怎么读都别扭,英文的看不进去。。不知道有什么好的建议么
      

  3.   


    最后那章关于AWT和Swing的,你就别看啦
      

  4.   

    不看awt直接看swing?thinking in java的swing,不先看AWT前面的东西看不懂的啊!!正在初学阶段,想把所有的东西系统过一遍。而且在看翻译版的时候,有些话怎么读都别扭,英文的看不进去。。不知道有什么好的建议么
    Swing也别看了
      

  5.   

    我花了好久时间了,想弄个界面。你这个魂蛋竟然说不看了。!!!不过这书里的好多语句都deprecated了。。
      

  6.   

    不看awt直接看swing?thinking in java的swing,不先看AWT前面的东西看不懂的啊!!正在初学阶段,想把所有的东西系统过一遍。而且在看翻译版的时候,有些话怎么读都别扭,英文的看不进去。。不知道有什么好的建议么
    Swing也别看了那我现在想弄个界面。应该看啥书呢。还有对于读thinking in java这本书,应该怎么读呢?哪些可以不看啊,哪些要重点看看
      

  7.   

    推荐java画界面使用SWT,画出来的界面样子和eclipse的界面一样
      

  8.   


    搞这东西纯粹是浪费时间!那你倒是给我指条明路好么。。
    多用点时间学习集合类呀,反射呀,泛型呀什么的,觉得都学会了就转战web方面吧!
    你要真想学swing没啥,不过想清楚哈
    这东西用的公司比较少哈
      

  9.   

    额,用swing不是也能弄的么,下个包不就行了,现在我是想学习的这个过程嘛,至于做成什么样子倒是不重要了。
      

  10.   


    搞这东西纯粹是浪费时间!那你倒是给我指条明路好么。。
    多用点时间学习集合类呀,反射呀,泛型呀什么的,觉得都学会了就转战web方面吧!
    你要真想学swing没啥,不过想清楚哈
    这东西用的公司比较少哈那我平时弄个小程序什么的。总得弄个界面的吧。
      

  11.   


    搞这东西纯粹是浪费时间!那你倒是给我指条明路好么。。
    多用点时间学习集合类呀,反射呀,泛型呀什么的,觉得都学会了就转战web方面吧!
    你要真想学swing没啥,不过想清楚哈
    这东西用的公司比较少哈那我平时弄个小程序什么的。总得弄个界面的吧。
    HTML的页面比Swing的难多了
    弄好了更赚钱的
      

  12.   

    我是初学java。只是想这样系统的过一遍,还是在学习中。现在因为只学过jaav,so,想弄个界面出来,不知道大神有什么看法。应该怎么搞?
      

  13.   


    搞这东西纯粹是浪费时间!那你倒是给我指条明路好么。。
    多用点时间学习集合类呀,反射呀,泛型呀什么的,觉得都学会了就转战web方面吧!
    你要真想学swing没啥,不过想清楚哈
    这东西用的公司比较少哈那我平时弄个小程序什么的。总得弄个界面的吧。
    HTML的页面比Swing的难多了
    弄好了更赚钱的刚上手的小白,还没毕业,下半年大三。(不过在大学,那老师教的都是些什么啊!!!)还想不到挣钱什么的。话说,你对web情有独钟啊,其实我现在对什么方面的什么都不知道,能不能给点具体的说法?
      

  14.   

    不看awt直接看swing?thinking in java的swing,不先看AWT前面的东西看不懂的啊!!正在初学阶段,想把所有的东西系统过一遍。而且在看翻译版的时候,有些话怎么读都别扭,英文的看不进去。。不知道有什么好的建议么
    Swing也别看了那我现在想弄个界面。应该看啥书呢。还有对于读thinking in java这本书,应该怎么读呢?哪些可以不看啊,哪些要重点看看
    在网上搜一个学习线路图吧,可以避免走很多弯路
      

  15.   

    引用功能丢失了,直接给你回复吧!关于界面这块,就目前企业的趋势来看,使用java开发桌面应用基本没有!学java的后面更多的从事的是javaee和android!但是这也不意味着,swing学了没用。任何一门技术都是有用的,特别是明白了思想后。那么后面你学习其他的界面编程都是游刃有余的。
      

  16.   


    搞这东西纯粹是浪费时间!那你倒是给我指条明路好么。。
    多用点时间学习集合类呀,反射呀,泛型呀什么的,觉得都学会了就转战web方面吧!
    你要真想学swing没啥,不过想清楚哈
    这东西用的公司比较少哈那我平时弄个小程序什么的。总得弄个界面的吧。
    HTML的页面比Swing的难多了
    弄好了更赚钱的
    感谢各位的回复,虽然答得和问题没关系但是也和我说了许多发展方向。不过我决定还是先把swing给看了,毕竟刚开始学。虽然不实用,但应该还是有存在的道理。至于之后的学习,会根据需求来学。(虽然提出的建议很好,但是不在一个层面上起手就用高级的东西不能真的了解,还是慢慢学吧。)还是再次谢谢大家的回复。
      

  17.   

    awt和swing我都没分清谁是谁,拿着现成的代码改着改着就都会了。
    建议楼主去下个swing项目源码看看,自己再改改。
      

  18.   


    点击右上角关闭按钮只要添加这句话就可以了
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    菜单关闭按钮就直接试用System.exit(0);
    要隐藏什么的可以用this.setVisible(false);
    基本上是这样了
      

  19.   


    点击右上角关闭按钮只要添加这句话就可以了
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    菜单关闭按钮就直接试用System.exit(0);
    要隐藏什么的可以用this.setVisible(false);
    基本上是这样了这个是不是只是在Frame中才用的,用来关闭这个框的。如果是extends Applet就不用使用这个语句了
      

  20.   


    点击右上角关闭按钮只要添加这句话就可以了
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    菜单关闭按钮就直接试用System.exit(0);
    要隐藏什么的可以用this.setVisible(false);
    基本上是这样了这个是不是只是在Frame中才用的,用来关闭这个框的。如果是extends Applet就不用使用这个语句了我没用过appletJFrame和Frame是一样的额,现在也没谁用Frame了
      

  21.   


    点击右上角关闭按钮只要添加这句话就可以了
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    菜单关闭按钮就直接试用System.exit(0);
    要隐藏什么的可以用this.setVisible(false);
    基本上是这样了这个是不是只是在Frame中才用的,用来关闭这个框的。如果是extends Applet就不用使用这个语句了我没用过appletJFrame和Frame是一样的额,现在也没谁用Frame了额,这个我知道,但是因为thinking in java的jdk是1.0和1.1的所以好多都不用了,不过swing还是基于awt的。只是做了些升级
      

  22.   

    如果lz要想要就业java的话swing就别看了,企业没人去用那个……如果只是很有空,或者想把java当作学习辅助工具的那看看也无妨……
      

  23.   

    我是个大学生,现在在学习java,然后想写几个小的程序,java自带了swing。就学着用用。
      

  24.   

    晕,现在还花时间搞awt,郁闷