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

📄 paopanel.java

📁 这是一个秒表代码,适合初学JAVA的朋友们借鉴,内有多线程操作
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.*;
import java.text.*;
public class PaoPanel extends JPanel implements Runnable,ActionListener{
	private JLabel time;
	private JButton jb1,jb2,jb3,jb4;
	private volatile boolean run,show;
	private int h,mi,se,m;

	Thread th;
	public PaoPanel(){
		time=new JLabel("00:00:00:00");
		th=new Thread(this);
		Font font=new Font("黑体",Font.BOLD,30);
		time.setFont(font);
		this.setLayout(new BorderLayout());
		JPanel jbn=new JPanel(); 
		jb1=new JButton("开始");
		jb2=new JButton("暂停");
		jb3=new JButton("停止");
		jb4=new JButton("清零");
		jb1.addActionListener(this);
		jb2.addActionListener(this);
		jb3.addActionListener(this);
		jb4.addActionListener(this);
		jbn.add(jb1);
		jbn.add(jb2);
		jbn.add(jb3);
		jbn.add(jb4);
		jb2.setEnabled(false);
		jb3.setEnabled(false);
		jb4.setEnabled(false);
		time.setHorizontalAlignment(JLabel.CENTER);
		this.add(time,BorderLayout.CENTER);
		this.add(jbn,BorderLayout.SOUTH);
	}
	public void run(){
	
		while(true){
			try{
				Thread.sleep(10);
			}
			catch(Exception e)
			{
				JOptionPane.showMessageDialog(null,"线程出错"+e.toString(),
				"错误",JOptionPane.ERROR_MESSAGE);
			}
			DecimalFormat de=new DecimalFormat("00");
		if(run){
	
		out:	for(int hour=h;hour<24;hour++){
				for(int min=mi;min<60;min++){
					for(int sec=se;sec<60;sec++){
						for(int mili=m;mili<100;mili++){
							if(run){
						
								if(show){
								String s=de.format(hour)+":"+de.format(min)+":"+
								de.format(sec)+":"+de.format(mili);
								time.setText(s);
							}
							try{
								Thread.sleep(10);
							}
							catch(Exception e){
								JOptionPane.showMessageDialog(null,"线程出错"+e.toString(),
								"错误",JOptionPane.ERROR_MESSAGE);
							}	
							h=hour;
							mi=min;
							se=sec;
							m=mili;
							}
							else 
							break out;
							
						
						}
						m=0;
					}
					se=0;
				}
				mi=0;
			}
			h=0;
			}
		}
	}
	public void actionPerformed(ActionEvent e){
		if(e.getSource()==jb1){
			
			if(!th.isAlive()){
			run=true;
			show=true;
			th.start();
			}
			else{
				run=true;
				show=true;
			}
		
			jb1.setEnabled(false);
			jb2.setEnabled(true);
			jb3.setEnabled(true);
			jb4.setEnabled(true);
		}
		else if(e.getSource()==jb2){
			if(e.getActionCommand()=="暂停"){
				show=false;
				jb2.setText("恢复");
			}
			else if(e.getActionCommand()=="恢复"){
				show=true;
				jb2.setText("暂停");
			}
		}
		else if(e.getSource()==jb3){
		if(e.getActionCommand()=="停止"){
				if(jb2.getText().equals("恢复")){
					show=true;
			try{Thread.sleep(20);}
			catch(Exception xe){xe.printStackTrace();}
			run=false;
			jb2.setEnabled(false);
			jb3.setText("恢复");
				}
				else if(jb2.getText().equals("暂停")){
					run=false;
					jb3.setText("恢复");
					jb2.setEnabled(false);
				}
			
		}
		else if(e.getActionCommand()=="恢复"){
			run=true;
			jb3.setText("停止");
			jb2.setEnabled(true);
			jb2.setText("暂停");
		}
		
		}
		else if(e.getSource()==jb4){
			run=false;
			show=false;
			jb1.setEnabled(true);
			jb2.setEnabled(false);
			jb3.setEnabled(false);
			jb4.setEnabled(false);
			time.setText("00:00:00:00");
			jb2.setText("暂停");
			jb3.setText("停止");
			try{
				Thread.sleep(20);
			}
			catch(Exception xxe){}
			m=0;
			h=0;
			se=0;
			mi=0;
			
		}
	}
	public static void main(String args[]){
		JFrame j=new JFrame("测试");
		j.getContentPane().add(new PaoPanel());
		j.setSize(300,300);
		j.setVisible(true);
		j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
}

⌨️ 快捷键说明

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