使用Timer类的两个实例 动态时钟
package chapter16; import javax.swing.*;
import chapter15.StillClock;
import java.awt.event.*; public class ClockAnimation extends JFrame {
public class TimerListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
clock.setCurrentTime();
clock.repaint();
}
}
private StillClock clock=new StillClock();
public ClockAnimation(){
add(clock);
Timer timer=new Timer(1000,new TimerListener());
timer.start();
}
public static void main(String[] args) {
// TODO Auto-generated method stub
ClockAnimation frame=new ClockAnimation();
frame.setTitle("ClockAnimation");
frame.setSize(200,200);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true); } }
第一个实例是动态时钟,其中StillClock是静态时钟的类。
package chapter16;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*; public class AnimationDemo extends JFrame {
public AnimationDemo(){
add(new MovingMessagePanel("message moving?"));
}
public static class MovingMessagePanel extends JPanel { public class TimerListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
repaint();
}
}
private String message="Welcome to Java";
private int xCoordinate=0;
private int yCoordinate=30; public MovingMessagePanel(String message){
this.message=message;
Timer timer=new Timer(500,new TimerListener());
timer.start();
}
protected void paintComponent(Graphics g){
super.paintComponent(g);
if(xCoordinate>getWidth()){
xCoordinate=-20;
}
xCoordinate+=5;
g.drawString(message, xCoordinate, yCoordinate);
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
AnimationDemo frame=new AnimationDemo();
frame.setTitle("AnimationDemo");
frame.setSize(300,100);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true); } }
第二个实例是一个可以横向移动的字符串。
两个实例都是采用了Timer类。
不同的地方在于,一个TimerListener定义在JFrame也就是外层框架中,一个TimerListener定义在内层,JPanel中。目前还分不清楚这两种情况应该如何应用?
等后面只是丰富来再来解决。
使用Timer类的两个实例 动态时钟的更多相关文章
- c#反射机制判断同一个类的两个实例的值是否完全一样
; i < properties1.Length; i++) { string s = properties1[i].DeclaringTyp ...
- Java:利用java Timer类实现定时执行任务的功能
一.概述 在java中实现定时执行任务的功能,主要用到两个类,Timer和TimerTask类.其中Timer是用来在一个后台线程按指定的计划来执行指定的任务.TimerTask一个抽象类,它的子类代 ...
- Java定时任务:利用java Timer类实现定时执行任务的功能
一.概述 在java中实现定时执行任务的功能,主要用到两个类,Timer和TimerTask类.其中Timer是用来在一个后台线程按指定的计划来执行指定的任务. TimerTask一个抽象类,它的子类 ...
- DedeCMS织梦动态分页类,datalist标签使用实例
<?php require_once(dirname(__FILE__)."/include/common.inc.php");//载入基础文件 require_once(D ...
- [ImportNew]Java中的Timer类和TimerTask类
http://www.importnew.com/9978.html java.util.Timer是一个实用工具类,该类用来调度一个线程,使它可以在将来某一时刻执行. Java的Timer类可以调度 ...
- java swing中Timer类的学习
最近在完成学校课程的java平时作业,要实现一个计时器,包含开始.暂停以及重置三个功能.由于老师规定要用这个timer类,也就去学习了一下,顺便记录一下. 首先呢去查了一下java手册上的东西,发现t ...
- Java学习笔记 -- Java定时调度工具Timer类
1 关于 (时间宝贵的小姐姐请跳过) 本教程是基于Java定时任务调度工具详解之Timer篇的学习笔记. 什么是定时任务调度 基于给定的时间点,给定的时间间隔或者给定的执行次数自动执行的任务. 在Ja ...
- C# 多线程九之Timer类
1.简介 相信写过定时任务的小伙伴都知道这个类,非常的轻量级,而且FCL中大量的类使用了这个方法,比如CancellationTokenSource的CancelAfter就是用Timer去做的. 当 ...
- 适配器、工厂模式、线程池、线程组、互斥锁、Timer类、Runtime类、单例设计模式(二十四)
1.多线程方法 * Thread 里面的俩个方法* 1.yield让出CPU,又称为礼让线程* 2.setPriority()设置线程的优先级 * 优先级最大是10,Thread.MAX_PRIORI ...
随机推荐
- 配置cas
在给tomcat配置好证书的基础上做一下操作(可以根据上一篇博客进行配置) 1.cas服务端配置(最后更改一下服务器tomcat的端口号) 第一步:下载cas-server-3.4.2.1-relea ...
- 查看SQL SERVER数据库运行参数和连接数
---查看当前数据库系统所有请求情况.我只列出了我认为比较重要有助于我解决问题的字段. SELECT ds.session_id, ds.status, Db_name(dr.database_id) ...
- Bootstrap_导航条
一.基础导航条 在制作一个基础导航条时,主要分以下几步: 第一步:首先在制作导航的列表(<ul class=”nav”>)基础上添加类名“navbar-nav” 第二步:在列表外部添加一个 ...
- 初识DeepLearning4j
标签(空格分隔): DeepLearning 在Mac上装DP4j 1. 安装Java 因为DP4j是基于JVM的,所以要先安装一下Java. 使用命令行brew install java 并且在pr ...
- [渣译文] 使用 MVC 5 的 EF6 Code First 入门 系列:为ASP.NET MVC应用程序使用异步及存储过程
这是微软官方教程Getting Started with Entity Framework 6 Code First using MVC 5 系列的翻译,这里是第九篇:为ASP.NET MVC应用程序 ...
- 深入浅出设计模式——模板方法模式(Template Method Pattern)
模式动机 模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一.在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中.在模板方法模式 ...
- 某篇ctr预估ppt的链接
csdn上面有一篇ppt,但是下载分太贵了.里面东西看起来讲的还可以.看看能不能嵌入. http://download.csdn.net/detail/u012289698/9371461 <i ...
- 转!!URL 传+号到后台变空格问题解决方案
网上很多解决方法,但是前提是get请求(或者是post请求后面追加的参数),让我试了很久(我是post),没成功!引以为戒!! 今天在调试客户端向服务器传递参数时,参数中的“+”全部变成了空格,原因是 ...
- 20160817_Redis配置操作
ZC: 主要是 做一些配置,使得 java程序能够访问到 redis服务器,主要内容为:ZC: ①.redis服务端服务 重启的命令ZC: ②.取消绑定 本地IP的配置,使得 所有本网段局域网机器都能 ...
- ASP.NET 配置KindEditor文本编辑器
ASP.NET 配置KindEditor文本编辑器 跟着这篇博客做了两个小时,只搞出了下面这么个东西. 时间浪费在了原博客里这样的一句话:将kindeditor/asp.net/bin/LitJSON ...