读书人

thinking in java看不懂了。该如何解决

发布时间: 2013-08-16 14:29:57 作者: rapoo

thinking in java看不懂了。
对着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的一个补充么?
最后一个,不知道哪路大神能给个联系方式,能平时指导下小弟编程的,我将感激涕零,三跪九叩,天天敬香。thinking in java看不懂了。该如何解决本人属于那种一点不通,再点还是不通,脑容量不大,却喜欢乱想东西的,(额,今天不是情人节了,不用担心这是找男人,甚至是女人。不过有女人的话那是再好不过了thinking in java看不懂了。该如何解决)要是哪位不嫌弃就顺手牵走吧,还是挺听话的,叫我上床绝不下床,加我脱裤绝不脱衣。还可以暖床,喂孩子。
thinking in java看不懂了。该如何解决
咳咳。垃圾话就这么多了,重点是,找师傅啊!!!!thinking in java看不懂了。该如何解决
[解决办法]
不要搞awt了
[解决办法]
引用:
Quote: 引用:

不要搞awt了

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

Swing也别看了
[解决办法]
推荐java画界面使用SWT,画出来的界面样子和eclipse的界面一样


[解决办法]


最后那章关于AWT和Swing的,你就别看啦
thinking in java看不懂了。该如何解决我花了好久时间了,想弄个界面。你这个魂蛋竟然说不看了。!!!不过这书里的好多语句都deprecated了。。thinking in java看不懂了。该如何解决
thinking in java看不懂了。该如何解决
搞这东西纯粹是浪费时间!那你倒是给我指条明路好么。。
多用点时间学习集合类呀,反射呀,泛型呀什么的,觉得都学会了就转战web方面吧!
你要真想学swing没啥,不过想清楚哈
这东西用的公司比较少哈那我平时弄个小程序什么的。总得弄个界面的吧。
HTML的页面比Swing的难多了
弄好了更赚钱的
[解决办法]

[解决办法]
thinking in java看不懂了。该如何解决
[解决办法]
thinking in java看不懂了。该如何解决要知其所以知其所以然!不求甚解,是不得已而为之的。

书上理论多,枯燥,脱离实际,学习速度慢。而且不是所有知识都会用到的。很多东西需要了再去看看就行了,没必要吧所有东西都弄懂吧。搞个项目模仿者做做就都会了。
就像你学走路,用得着知道为什么会走吗?先走起来,以后搞理论了再去研究为什么呗
[解决办法]
引用:
Quote: 引用:


要添加啊,要不你点击关闭按钮没反应的,也可以通过其他方法添加。。
对的,但是这个是不是只用在对话框和菜单里面。在其它地方都不用的啊。


点击右上角关闭按钮只要添加这句话就可以了
setDefaultCloseOperation(EXIT_ON_CLOSE);

菜单关闭按钮就直接试用System.exit(0);
要隐藏什么的可以用
this.setVisible(false);

基本上是这样了
[解决办法]
如果lz要想要就业java的话swing就别看了,企业没人去用那个……如果只是很有空,或者想把java当作学习辅助工具的那看看也无妨……

读书人网 >J2SE开发

热点推荐