bigbig 发表于 2006-12-4 15:36

西门吹泡 发表于 2006-12-4 20:10

如果implements ActionListener那就要在当前class里编写public void actionPerformed(ActionEvent e) {}

按照你这个代码可以用两种方式获得Event的来源是哪个按钮
public void actionPerformed(ActionEvent e) {
if(e.getActionCommand().equals("add"))
   { ... }
else if(e.getActionCommand().equals("remove"))
    {...}
}

chela 发表于 2006-12-4 20:28

java不是我本行,只能把我理解的说一下了。

你这些问题其实来源于对Java GUI的事件模型不清楚,我建议你好好看看这篇关于Java GUI Event Model的文章,http://java.sun.com/j2se/1.3/docs/guide/awt/designspec/events.html
,这部分内容很有意思,能帮助你更好的理解Java GUI的思想。特别注意从JDK 1.0 AWT使用的"基于继承的事件模型(类似VB之类的用的模型)"转到JDK1.1 开始的"基于委托的事件模型"后的差异。

另外这篇中文版的也供参考http://www.yesky.com/374/1802374.shtml

也可以和微软的模式对比一下
http://www.yesky.com/207/1790207.shtml

JAVA我觉得是学习起来最方便的一种语言,因为它资源非常丰富,还有源码可看。 JavaDoc是个好东西,一定要多查,你的问题里其实很多都可以在里面找到答案。比如,如何区分事件来源,如何触发不同方法,在Java Tutorials的相关例子都能找到对应的程序,看了例子自然就明白了。

还有一个关系不是很大的建议,从你叙述问题上看,我猜你学Java还是在看国内的书,既然来德国了,还是直接看英文的吧,开始可能会费劲,但是对将来的学习和工作都很有帮助。

greenflute 发表于 2006-12-4 21:15

怎么不建议看德语的? 也有不少好的德语入门书的$汗$ $汗$

chela 发表于 2006-12-4 21:41

原帖由 greenflute 于 2006-12-4 21:15 发表
怎么不建议看德语的? 也有不少好的德语入门书的$汗$ $汗$

英语的资料最多,大部分第一手的都是英语的,德文很多东西都是倒手的。

bigbig 发表于 2006-12-4 21:56

cn1h 发表于 2007-1-8 15:31

过程是这样的,
先调用组件的addxxxListener(xxxx);注册一个处理此组件相应动作的监听者。此监听者必须实现了相应的处理接口。
此过程实际上是向一个EventListenerList类型的变量,比如:javax.swing.JComponent.listenerList注册了此监听者。此后当控件的相应事件发生时,它会自动查找刚才那个EventListenerList类型的变量中所有相关的对象,并且按照接口的规定,调用此对象的相应方法。
这也是为什么监听者可以是任何类,但他必须要执行相应接口的原因。

cn1h 发表于 2007-1-8 15:35

《core java》上册里有详细的解释和手动注册以及触发自定义事件类的方法。
页: [1]
查看完整版本: xxx