java swt_JAVA_SWT 事件的四种写法

本文介绍了Java中处理事件的四种方法:匿名内部类、命名内部类、外部类以及实现监听器接口。每种方法都有其优缺点,例如匿名内部类方便但不易维护,命名和外部类利于代码重用,实现接口则适用于多个组件共享同一事件处理。选择合适的方式取决于代码组织和复用需求。
摘要由CSDN通过智能技术生成

一:匿名内部类写法

在一个组件下加入以下语句

text.addMouseListener(new MouseAdapter(){

public void mouseDoubleClich(MouseEVent e){

MessageDialog.openInformation(null,"","helloworld"):

}})

这种方式是在事件内部直接实现处理代码,优点是简单方便,但也存在缺点

①:事件处理代码会分散的出现在各个部分,维护起来不方便;

②:如果代码较长,阅读和维护起来麻烦

③:当工具栏、菜单栏也需要相同的行为时,代码无法重用,导致代码臃肿

二:命名内部类写法:

text.addMouseListener(new MyMouseDoubleClick());

...//定义MyMouseDoubleClick.java

private static final class MyMouseDoubleClick extends MouseAdapter{

public void mouseDoubleClick(MouseEvent e){

MessageDialog.openInformation(null,"","hello world")

}

}

三:外部类写法:

这种方法与第二种方法类似,只是有内部类变为单个外部类

代码略;

四:实现监听器接口的写法:

将类实现相应的接口,这样类本身就成了一个监听器,使得加入监听器的代码可以更简洁,这种方法适合加入监听器的组件较多,且要求监听器的事件处理代码可以被组件共用,需要注意的是

事件方法和其他方法混合在一起,所以应加一些注释来说明。没用事件处理方法可以用空来实现。如果继承了了相应的事件适配器,则可根据需要写相应的方法,另外需要注意,只有接口才有多继承的特性,所以如果类本身已经是一个子类,则只有通过实现接口的方式来实现而不能继承接口的适配器。

public class Helloworld extends MouseAdapter implements MouseListener{

public static void main(String[] args){

.......

Text text1=new Text(shell,SWT.Border);

Text text2=new Text(shell, SWt.Border);

text1.addMouseListener(this);

text2.addMouseListener(this);

}

public void mouseDoubleClick(MouseEvent e){

MessageDialog.openInformation(null,"","hello world");}}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值