日期:2014-05-20  浏览次数:20840 次

JAVA 事件 问题??
如果有两个。JAVA文件分别在里面写2个类   一个类写界面,一个类写事件
在界面中怎么调用事件,高人给举个例子


------解决方案--------------------
在java中没有事件这个概念。而在C#中才有事件的概念
------解决方案--------------------
JCreator 写的个例子
新建了一个名为AWT的工程
新建了1个名为Awt的Project
里面有2个java文件1个是Awt.java界面 1个是shijian.java事件处理

Awt.java

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

public class Awt
{
public static void main(String args[])
{
Frame f=new Frame( "Test ");
f.setSize(300,300);
f.setLayout(new FlowLayout(FlowLayout.CENTER));

Button b=new Button( "点击我 ");
f.add(b);
f.setVisible(true);

b.addActionListener(new shijian()); //调用

}
}

shijian.java

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

class shijian implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
System.out.println( "被点击 ");
}
}

这样就行了啊!这好像叫一种委托方式事件处理吧!
------解决方案--------------------
假设界面和事件两个类都是public,并属于同一个package
界面类中,有
JButton start = new JButton( "Start ");
事件类对应的有
public void startActionPerformed(ActionEvent e) {
//...
}
要给start按钮添加时间,就用
start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
ShiJian.startActionPerformed(evt);
}
});
个人比较喜欢这样,如果有多个按钮多个事件,可以分开来写代码
------解决方案--------------------
在java中没有事件这个概念。而在C#中才有事件的概念
这句超强 学习 学习 用了这么久了 叫什么??
------解决方案--------------------
我觉得 事件也好,非事件也好。

仅仅是个叫法罢了,无所谓了。
------解决方案--------------------
个人叫法不同而已
没必要这么关注一个术语
应该是先为某个控件添加个监听
然后在监听类(匿名类(ZelluX(ZelluX) 的),或外部类(forhd()的))里,根据控件的动作(比如单击,移动等)来做对应的操作
------解决方案--------------------
事件与界面分离是个好习惯,个人的经验有2种比较好的办法
1.EventHandler 一个implements 各种接口的事件自用处理类,函数里面根据ActionCommand判断要执行的动作,事件可以统一管理,重用方便,类也很少,但一个上百分支的if-else不是那么好,最好建立一个ActionCommand-ActionID的映射..处理真正执行代码应该放在主类内,EventHandler是负责解释命令调用

2.Action 为每个事件生成一个Action,这些Action可以用在任何地方,可以方便管理..但就是比较分散..Eclipse插件是使用这种机制...