A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jsjchenlong 中级黑马   /  2014-4-21 00:25  /  917 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java中的适配器是用来干什么的,好处是什么,什么情况下用,怎么用

1 个回复

倒序浏览
什么是"适配器",可以用简单的代码做演示看的出来,适配器是事件监听接口实现类,这些类实现了相应的事件监听器接口,并为接口中所有方法定义了空实现方法,就是声明了接口中定义的所有方法,但是方法是空体的。按键事件监听器的适配器为KeyAdapter。如果我们想在软件软件中添加键盘监听器,而我们只需要实现其中的一个方法,鼠标按下时执行,那么其它的方法就不必要写出,不需要实现KeyListener类,只需要实现其适配器KeyAdapter类,代码简洁,且容易阅读。
通过以下代码对比,我们不仅能学习到什么是适配器,和创建窗体事件的监听器。
[CODE=java]
import javax.swing.*;
import java.awt.event.*;

public class MyWindow extends JFrame {
public MyWindow() {
addWindowListener(new WindowListener() {

public void windowActivated(WindowEvent arg0) {
System.out.println("窗口在活动状态");

}

@Override
public void windowClosed(WindowEvent arg0) {
System.out.println("窗口已经关闭");

}

@Override
public void windowClosing(WindowEvent arg0) {
System.out.println("窗口正在关闭");

}

@Override
public void windowDeactivated(WindowEvent arg0) {
System.out.println("窗口非活动状态");

}

@Override
public void windowDeiconified(WindowEvent arg0) {
System.out.println("窗口脱离最小化");

}

@Override
public void windowIconified(WindowEvent arg0) {
System.out.println("窗口最小化");

}

@Override
public void windowOpened(WindowEvent arg0) {
System.out.println("窗口打开状态");

}

});
setBounds(100, 100, 300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
MyWindow test = new MyWindow();
test.setVisible(true);

}

}
[/CODE]
执行结果:
窗口在活动状态
窗口打开状态
窗口最小化
窗口非活动状态
窗口脱离最小化
窗口在活动状态
窗口正在关闭
以上代码,如果我只需要当界面最小化的时候,在控制台输出"程序已经最小化",那么我们仍然需要写出其它多余的方法吗?是没有必要的,多余代码只能让程序更累赘,这就用到了适配器,通过实现WindoListener()的适配器接口WindoAdapter()来单独写windowIconified()方法实现对"最小化"的监听。
看以下代码:
[CODE=Java]
import javax.swing.*;
import java.awt.event.*;

public class MyWindow extends JFrame {
public MyWindow() {
addWindowListener(new WindowAdapter() {

public void windowIconified(WindowEvent arg0) {
System.out.println("窗口最小化");
}
});
setBounds(100, 100, 300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public static void main(String[] args) {
MyWindow test = new MyWindow();
test.setVisible(true);

}

}
[/CODE]
执行结果:
出现界面,点击"最小化",控制台输出"窗口最小化"。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马