JAVA 按钮单击事件

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
content.setBackground(Color.GREEN);//设置当前窗口的背景颜色
jbutton=new JButton("改变窗口颜色");//创建一个按钮
jbutton.addActionListener(new CChange());//为按钮添加事件
content.add(jbutton);//将按钮添加到内容窗口上
public void actionPerformed(ActionEvent e){ //事件的默认方法
content.setBackground(Color.blue);//改变当前窗口的背景颜色
setSize(400,300);//设置当前窗口的大小
}
}
public static void main(String[] args)
setTitle("单击事件测试");//设置窗口标题
setSize(300,300);//设置窗口显示尺寸
setVisible(true);//设置窗口是否可见(true可见,false不可见)
}
class CChange implements ActionListener{
//CChange类继承按钮事件ActionEvent的ActionListener监听器接口。
JAVA
使用授权处理模型进行事件处理的一般方法归纳如下:
对于某种类型的事件XXXEvent,要想接收并处理这类事件,必须定义相应的事件监听器类,该类需要实现与该事件相对应的接口XXXListener;
事件源实例化以后,必须进行授权,注册该类事件的监听器,可以使用addXXXListener(XXXListener)方法来注册监听器。
{
new colorChange();//创建一个实例化对象
}
}
执行上述代码,结果如图10-2所示。在图10-2所示窗口中单击【改变窗口颜色】按钮,会出现如图10-3所示的窗口。
10-2显示窗口10-3事件发生后窗口
当单击【改变窗口颜色】按钮,会触发按钮单击事件,事件的执行结果就是改变窗体大小和颜色。在源文件中,按钮是一个事件源,内部类CChange是一个监听器,即事件处理者,CChange类需要继承按钮事件ActionEvent的ActionListener监听器接口。当该类获得按钮发送的事件信息后,就执行该类中相应的方法。
现在创建一个案例,演示单击事件处理的过程并以此事件剖析整个授权模型的处理机制和相关元素,代码如下所示:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class colorChange extends JFrame
JButton按钮是一个独立的对象,是事件源;事件处理者CChange(监听器)是一个独立的对象,是事件处理者,二者如果要完成按钮发送信息,监听器接受信息后执行操作,二者之间必须有一个注册关系,即授权关系。
即当按钮被触发事件,可以授权给监听器完全处理,处理完毕后只要将结果返回即可。也就是说,有了事件监听器和事件类型,还需要将该监听器对象注册给相应的组件对象。注册通过addXXXListener形式注册,其中XXX对应监听器对象的类型。例如语句“jbutton.addActionListener(newCChange());”完成的就是按钮的事件注册。其中“newCChange()”是监听器的实例化对象。监听器对象属于类CChange()的实例化对象,CChange()类实现了一个特殊的接口,该接口被称为“监听者接口”,这种接口是系统内置的接口。
{JButton jbutton;//定义按钮
Container content;//定义容器窗口
public colorChange(){
content=getContentPane();//获取当前窗口的内容窗口
content.setLayout(new FlowLayout());//设置当前的布局方式为流式布局
如果一个类继承监听器接口,就要实现该接口中的所有方法,否则就会形成抽象类。发生什么类型的事件,就要有相应的监听器接口。“public void actionPerformed(ActionEvent e)”表示当一个事件到达事件监听器对象时,要携带一个该事件所分解的一些信息。比如,事件发生的时间,事件是由那个组件发生的等等。这些信息可以通过XXXEvent形式来表示的,其中XXX表示事件类型,例如,本例中选中事件所对应的是ActionEvent事件对象。
例如,当用户用鼠标单击了按钮对象button,则该按钮button就是事件源。而java运行时系统会生成ActionBiblioteka Baiduvent类的对象actionE,该对象中描述了该单击事件发生时的一些信息,然后,事件处理者对象将接收由java运行时系统传递过来的事件对象actionE并进行相应的处理。如果事件源对象button在被单击时需要做出反应,就需要注册一个事件处理者,即将处理功能委托给一个实现监听器接口的类。这样才能保证在被单击时,有对应的事件处理者响应。
相关文档
最新文档