📄 clock5.java
字号:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.util.*;
public class Clock5 extends Applet
{
private ClockThread clockThread[];
private Button btStart=new Button("Start");
private boolean blStarted=false;
private boolean isApplet=true;
private int intThreadCount;
public void init()
{
if(isApplet)
{
intThreadCount=Integer.parseInt(getParameter("intThreadCount"));
}
clockThread=new ClockThread[intThreadCount];
for(int i=0; i<clockThread.length;i++)
clockThread[i]=new ClockThread(this);
btStart.addActionListener(new StartListener());
add(btStart);
}
//Start按钮的事件监听器
class StartListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
if(!blStarted)
{
blStarted=true;
for(int i=0;i<clockThread.length;i++)
clockThread[i].start();
}
}
}
//The main function
public static void main(String[] args)
{
Clock5 applet=new Clock5();
Frame aFrame=new Frame("Clock5");
applet.isApplet=false;
if(args.length==0)
{
applet.intThreadCount=5;
}
else
applet.intThreadCount=Integer.parseInt(args[0]);
//增加windows时间处理,用来推出程序
aFrame.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
aFrame.add(applet,BorderLayout.CENTER );
aFrame.setSize(400,applet.intThreadCount*50);
applet.init();
applet.start();
aFrame.setVisible(true);
}
}
//用来处理电子表的线程
class ClockThread extends Thread
{
private boolean blRunFlag=true;
private Button
btPause=new Button("Pause"),
btIncPriority=new Button("+"),
btDecPriority=new Button("-");
private TextField
tfTime=new TextField(35),
tfPriority=new TextField(3);
// private boolean runFlag=true;
private long lngTime=new Date().getTime();
//在初始化的时候就启动线程
public ClockThread(Clock5 clock)
{
btPause.addActionListener(new PauseListener());
btIncPriority.addActionListener(new IncPriorityListener());
btDecPriority.addActionListener(new DecPriorityListener());
Panel panel=new Panel();
panel.add(tfTime);
panel.add(tfPriority);
panel.add(btPause);
panel.add(btIncPriority);
panel.add(btDecPriority);
clock.add(panel);
}
//Pause按钮的事件监听器
class PauseListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
InvertFlag();
}
}
//+按钮的事件监听器
class IncPriorityListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
int intPriority=getPriority()+1;
if(intPriority>Thread.MAX_PRIORITY )
intPriority=Thread.MAX_PRIORITY;
setPriority(intPriority);
}
}
//-按钮的事件监听器
class DecPriorityListener implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
int intPriority=getPriority()-1;
if(intPriority<Thread.MIN_PRIORITY )
intPriority=Thread.MIN_PRIORITY;
setPriority(intPriority);
}
}
public void InvertFlag()
{
blRunFlag=!blRunFlag;
}
public void run()
{
while(true)
{
try
{
Thread.currentThread().sleep(10);
}
catch(InterruptedException e){}
if(blRunFlag)
{
lngTime=lngTime+1000;
Date dtTime=new Date(lngTime);
tfTime.setText(dtTime.toString());
tfPriority.setText(Integer.toString(getPriority()));
}
yield();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -