⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 threadstatusdemo.java

📁 学习参考,java基本语法练习,包括一些常用的技巧
💻 JAVA
字号:
//线程状态演示
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.lang.*;
import java.util.*;
public class ThreadStatusDemo extends JFrame implements ActionListener
{
    JPanel pnlMain;
    static JLabel lblMove;
    JButton btnControl,btnStart,btnSleep,btnDead;
    //声明一个显示当前时间的线程
    CurrentTime ct;
    public ThreadStatusDemo()
    {
		super("线程状态演示");
    	pnlMain=new JPanel();
    	setContentPane(pnlMain);
    	lblMove=new JLabel("");
    	lblMove.setFont(new Font("宋体",Font.BOLD,22));
    	lblMove.setForeground(Color.RED);
    	btnStart=new JButton("开始");
    	btnStart.addActionListener(this);
    	btnSleep=new JButton("睡眠");
    	btnSleep.addActionListener(this);
    	btnDead=new JButton("结束");
    	btnDead.addActionListener(this);
    	btnControl=new JButton("挂起");
    	btnControl.addActionListener(this);
    	pnlMain.add(lblMove);
    	pnlMain.add(btnStart);
    	pnlMain.add(btnSleep);
    	pnlMain.add(btnControl);
    	pnlMain.add(btnDead);
    	setSize(250,150);
    	setVisible(true);
    	setResizable(false);
    	setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
	//实现ActionListener接口必须实现的方法
	public void actionPerformed(ActionEvent ae)
	{
		if (ae.getSource()==btnStart)
		{
	    	//构造线程对象并通过start方法让它处于运行状态
    		ct=new CurrentTime();
    		ct.start();
		}
		if (ae.getActionCommand()=="挂起")
		{
			//通过suspend方法挂起线程,进入不可运行状态
			btnControl.setText("重启");
			ct.suspend();
		}
		if (ae.getActionCommand()=="重启")
		{
			//通过resume方法重新启动线程
			btnControl.setText("挂起");
			ct.resume();
		}
		if (ae.getSource()==btnSleep)
		{
			try
			{
				//通过sleep方法让线程进入睡眠状态
				ct.sleep(3000);
			}catch(Exception e)
			{
				JOptionPane.showMessageDialog(null,"线程错误!");
			}
			
		}
		if (ae.getSource()==btnDead)
		{
			//通过stop方法将线程杀死
			ct.stop();
		}
	}
	public static void main(String args[])
	{
		ThreadStatusDemo td=new ThreadStatusDemo();
	}
}
//独立的一个显示当前时间的线程类
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);
		//显示当前日期和时间
		ThreadStatusDemo.lblMove.setText(strTime);
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -