📄 tnewtimer.java
字号:
import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.event.*;
/**************************************************************************
*自定义时钟控件
*************************************************************************/
public class TNewTimer extends JComponent
implements Runnable
{
private int interval;
private Thread thread = null;
//构造函数=============================================================
public TNewTimer(int interval)
{
listenerList = new EventListenerList();
this.interval = interval;
thread = new Thread(this);
///thread.stop();
}
//线程调用函数=========================================================
public void run()
{
//线程启动时,不断的向时钟发送事件,
//以使时钟不停的执行
while(true)
{
try{
thread.sleep(interval);
}
catch(InterruptedException e){
System.out.println("时钟意外终止");
thread.stop();
}
TNewTimerEvent event = new TNewTimerEvent(this);
EventQueue queue = Toolkit.getDefaultToolkit()
.getSystemEventQueue();
queue.postEvent(event);
}
}
//处理事件=============================================================
public void processEvent(AWTEvent event)
{
if(event instanceof TNewTimerEvent)
{
TNewTimerListener[] listeners = (TNewTimerListener[])
this.listenerList.getListeners(TNewTimerListener.class);
for(int i=0; i<listeners.length; i++)
listeners[i].action((TNewTimerEvent)event);
}
}
//启动时钟=============================================================
public void start()
{
//if(thread != null)
// thread.start();
if(thread != null)
thread.stop();
thread = new Thread(this);
thread.start();
}
//停止时钟=============================================================
public void stop()
{
if(thread != null)
thread.stop();
}
//添加TNewTimerListener监听器==================================
public void addNewTimerListener(TNewTimerListener listener)
{
this.listenerList.add(TNewTimerListener.class, listener);
}
//删除TNewTimerListener监听器===================================
public void removeNewTimerListener(TNewTimerListener listener)
{
this.listenerList.remove(TNewTimerListener.class, listener);
}
public void setInterval(int interval)
{
this.interval = interval;
}
public int getInterval()
{
return interval;
}
}
/**************************************************************************
*时钟控件的事件类
*************************************************************************/
class TNewTimerEvent extends AWTEvent
{
private final static int id = AWTEvent.RESERVED_ID_MAX + 1;
public TNewTimerEvent(TNewTimer source)
{
super(source, id);
}
}
/**************************************************************************
*时钟控件监听器接口
*************************************************************************/
interface TNewTimerListener extends EventListener
{
public void action(TNewTimerEvent event);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -