📄 threaddemo.java
字号:
//继承Thread类线程演示
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
import java.util.*;
//通过继承Thread类创建线程
public class ThreadDemo extends JFrame implements ActionListener
{
JPanel pnlMain;
static JLabel lblMove;
JButton btnControl;
//声明一个显示当前时间的线程
CurrentTime ct;
public ThreadDemo()
{
super("继承Thread类线程演示");
pnlMain=new JPanel(new GridLayout(2,1));
setContentPane(pnlMain);
lblMove=new JLabel("");
lblMove.setFont(new Font("宋体",Font.BOLD,22));
lblMove.setForeground(Color.RED);
btnControl=new JButton("挂起");
btnControl.addActionListener(this);
pnlMain.add(lblMove);
pnlMain.add(btnControl);
//构造线程对象并让它处于运行状态
ct=new CurrentTime();
ct.start();
setSize(250,150);
setVisible(true);
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
//实现ActionListener接口必须实现的方法
public void actionPerformed(ActionEvent ae)
{
if (ae.getActionCommand()=="挂起")
{
btnControl.setText("重启");
ct.suspend();
}
if (ae.getActionCommand()=="重启")
{
btnControl.setText("挂起");
ct.resume();
}
}
public static void main(String args[])
{
ThreadDemo td=new ThreadDemo();
}
}
//独立的一个显示当前时间的线程类
class CurrentTime extends Thread
{
Date dateDisplay;
GregorianCalendar gcCalendar;
String strTime;
public CurrentTime(){}
//继承Thread类必须实现的run方法
public void run()
{
while(true)
{
displayTime();
try
{ this.sleep(1000);}
catch(InterruptedException e)
{ JOptionPane.showMessageDialog(null,"线程中断!");}
}
}
//显示当前日期和时间的函数
public void displayTime()
{
dateDisplay=new Date();
gcCalendar=new GregorianCalendar();
//获得当前时间
gcCalendar.setTime(dateDisplay);
//从当前时间中提取日期段和时间段
strTime=" 当前时间:"+gcCalendar.get(Calendar.HOUR)+":"+gcCalendar.get(Calendar.MINUTE)+":"+gcCalendar.get(Calendar.SECOND);
//显示当前日期和时间
ThreadDemo.lblMove.setText(strTime);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -