java 核心技术卷一笔记 6 .2接口 lambda 表达式 …
2018-06-18 02:44:00来源:未知 阅读 ()
6.2 接口实例
6.2.1 接口与回调
在java.swing包中有一个Timer类,可以使用它在到达给定的时间间隔时发出通告,假如程序中有一个时钟,就可以请求每秒钟获得一个通告,以便更新时钟的表盘。
在构造定时器时,需要设置一个时间间隔,并告知定时器,当到达时间间隔时需要做些什么操作,(java将某个类的对象传递给定时器,然后的定时器调用这个对象的方法。)-----定时器需要知道调用了哪一个方法,并要求传递的对象所属的的类实现了java.awt.event包的ActionListener接口。
1 public interface ActionListener 2 { 3 void actionPerformed(ActionEvent event); 4 }
当到达指定的时间间隔时,定时器就调用actionPerformed方法。
接下来,构造这个类的一个对象,并将他传递给Timer构造器。
1 ActionListener listener =new TimePrinter(); 2 Timer t =new Timer(10000,listener);
下面程序给出了定时器和监听器的操作行为,在定时器启动以后,程序将弹出一个消息对话框,并等待用户点击OK按钮来终止程序的运行。定时时间为5秒;
1 package cc.openhome; 2 import java.awt.Toolkit; 3 import java.awt.event.ActionEvent; 4 import java.awt.event.ActionListener; 5 import java.util.Date; 6 import javax.swing.JOptionPane; 7 import javax.swing.Timer; 8 public class TimerTest { 9 public static void main(String[] args) { 10 ActionListener listener =new TimePrinter(); 11 Timer t=new Timer(5000,listener); 12 t.start(); 13 JOptionPane.showMessageDialog(null, "Quit program?"); 14 System.exit(0); 15 } 16 } 17 class TimePrinter implements ActionListener 18 { 19 public void actionPerformed(ActionEvent evet ) 20 { 21 System.out.println("At the tone ,the time is "+new Date()); 22 Toolkit.getDefaultToolkit().beep(); 23 } 24 }
At the tone ,the time is Sun Mar 18 10:28:51 CST 2018 At the tone ,the time is Sun Mar 18 10:28:56 CST 2018 At the tone ,the time is Sun Mar 18 10:29:01 CST 2018 At the tone ,the time is Sun Mar 18 10:29:06 CST 2018 At the tone ,the time is Sun Mar 18 10:29:11 CST 2018 成功构建 (总时间: 26 秒)
Api javax.swing.JOptionPane 1.2
static void showMessageDialog(ComPonent parent,Object message)
显示一个包含一条消息和OK按钮的对话框,这个对话框将位于其parent组件的中央。
API javax.swing..Timer 1.2
Timer(int interval ,ActionListener Listener)
构造一个定时器,每隔interval毫秒通告listener一次。
void start()
启动定时器。一旦启动成功,定时器将调用监听器的actionPerformed。
API void stop()
停止定时器,一旦停止成功,定时器将不在调用监听器的actionPerformed。
java。awt.Toolkit 1.0
static Toolkit getDefaultToolkit()
获得默认的工具箱。工具箱包含有关GUI环境的信息。
void beep()
发出一声铃响。
6.2.2 Comparator接口
假设我们希望按长度递增的顺序对字符串进行排序,而不是按字典顺序进行排序。
处理这种情况,Arrays.sort方法还有第二个版本,有一个数组和一个比较器(comparator)作为参数,比较器实现了Comparator接口的类的实例。
public interface Comparator<T> { int compara(T first,second); }
要按长度比较字符串,可以如下定义一个实现Comparator<String>的类
class LengthComparator implements Comparator<String> { public int compare(String first,String second) { return first.length()-second.length(); } }
具体完成比较时,需要建立一个实例:
Comparator<String> comp =new lengthComparator();
if (comp.compre(words[i],words[j]>0)...
要对一个数组排序,需要为Arrays.sort方法传入一个LengthComparator对象:
String[] friengds ={"Peter","Paul","Mary"};
Arrays.sort(friends,new LengthComparator());
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:webService基础入门
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash