| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 941 人关注过本帖
标题:关于"事件"的问题
取消只看楼主 加入收藏
annon
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-12-2
收藏
 问题点数:0 回复次数:4 
关于"事件"的问题

import java.applet.*; import java.awt.*; import java.awt.event.*;

class MyButton extends Button implements TextListener,ActionListener { TextArea text1,text2; MyButton(String s) { super(s); text1=new TextArea(10,10); text2=new TextArea(20,20); text1.addTextListener(this); this.addActionListener(this); } public void textValueChanged(TextEvent e) { text2.setText(text1.getText()); } public void actionPerformed(ActionEvent e) { text1.setText(null); } }

public class Test4 extends Applet implements ActionListener { MyButton button; public void init() { button=new MyButton("点击看我能发生什么?"); button.addActionListener(this); add(button.text1);add(button.text2);add(button); } public void actionPerformed(ActionEvent e) { button.text1.setText(button.getLabel()); button.text2.setText("ok!"); }

}

大家说下结果是什么?

能告诉我为什么 button.text2.setText("ok!"); 没执行呢?

搜索更多相关主题的帖子: void public import 
2004-12-10 02:24
annon
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-12-2
收藏
得分:0 

意思我明白了

但是你这样说的话,那

public void actionPerformed(ActionEvent e) { text1.setText(null); }

不就不执行了?

2004-12-10 10:52
annon
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-12-2
收藏
得分:0 

把程序

public void actionPerformed(ActionEvent e) { button.text2.setText("ok!"); button.text1.setText(button.getLabel()); } 变成

public void actionPerformed(ActionEvent e) { button.text2.setText("ok!"); // button.text1.setText(button.getLabel()); } 后

在text1中输入文本字,text2就会出现一样的字;

就执行:

public void textValueChanged(TextEvent e) { text2.setText(text1.getText()); }

但是我点击按钮"电击看我能发生什么?"时:

第一次点击:两个文本都为空;

第二次点击:text1为空,text2为"ok!"

这个过程又怎么解释?

当然,从text1空文本点击"电击看我能发生什么?"时执行:

public void actionPerformed(ActionEvent e) { button.text2.setText("ok!"); }

结果都一样:

text1为空, text2为"ok!".

2004-12-10 11:03
annon
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-12-2
收藏
得分:0 
主类中的:button.text2.setText("ok!");----------1
button本身类的事件:
text2.setText(null);-----------------------------------2
text1.setText(text1.getText());-----------------------------------3
text1不为空时执行顺序:1->2->3->TextListener->2:j结果text1和text2都为空。
text1为空时执行顺序:1->2->3:结果text1为空 text2为"ok".
理解是理解了。
但是当注释// button.text1.setText(button.getLabel())取消后变成:
主类中的:button.text2.setText("ok!");----------1
                  button.text1.setText(button.getLabel());-------2
button本身类的事件:
text2.setText(null);-----------------------------------3
text1.setText(text1.getText());-----------------------4
不管text1空不空执行结果都是:text1和text2的类容一样为:“点击看我能发生什么?”
我搞不懂执行顺序,怎么总觉得button本身类的3:text1.setText(null);没有被执行。
按照:先主类的事件,后button本身类的事件的顺序原则。3应该是被执行才对啊。
如果3被执行的话,那么4也会被激发,结果也应该text1,text2都会为空啊。
但是结果是:text1和text2的类容一样为:“点击看我能发生什么?”
您能告诉我这些事件的执行顺序吗
2004-12-11 16:47
annon
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2004-12-2
收藏
得分:0 

谢谢yms123

这种方法果然见效,马上明白。

2004-12-12 23:52
快速回复:关于"事件"的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017143 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved