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

📄 watch.java

📁 定时器
💻 JAVA
字号:
package year2008.june.day25;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

import sun.audio.AudioPlayer;
import sun.audio.AudioStream;

public class Watch implements Runnable{
	
	private JPanel panel;
	private JButton button1;
	private JButton button2;
	private JButton button3;
	private JButton button4;
	private JLabel label1;
	private JLabel label2;
	// 秒表数
	private int si = 0;
	private int sj = 0;
	private int mi = 0;
	private int mj = 0;
	private int hi = 0;
	private int hj = 0;
	private String ssi = "00";
	private String ssj = "00";
	private String smi = "00";
	private String smj = "00";
	private String shi = "00";
	private String shj = "00";
	private static Thread t1;
	private static Thread t2;
	// 使用哪个表的判断标志
	private int tar = 0;
	// 是否初次使用判断标志
	private int m = 0;
	private int n = 0;
	
	public Component createCom(){
		
		button1 = new JButton("开始");
		button3 = new JButton("停止");
		button2 = new JButton("开始");
		button4 = new JButton("停止");
		label1 = new JLabel("00:00:00");
		label2 = new JLabel("00:00:00");
		panel = new JPanel();
		panel.setBorder(BorderFactory.createEmptyBorder(30,30,10,30));
		panel.setLayout(new GridLayout(2,3));
		panel.add(label1);
		panel.add(button1);
		panel.add(button3);
		panel.add(label2);
		panel.add(button2);
		panel.add(button4);
		
		button1.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				tar = 0;
				if(m==0){
					t1.start();
					m=1;
				}else{
					t1.resume();
				}
			}			
		});
		
		button2.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				tar = 1;
				if(n==0){
					t2.start();
					n=1;
				}else{
					t2.resume();
				}
			}
			
		});
		
		button3.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				t1.suspend();
				si = 0;
				mi = 0;
				hi = 0;
				tar = 0;
			}			
		});
		
		button4.addActionListener(new ActionListener(){
			public void actionPerformed(ActionEvent arg0) {
				t2.suspend();
				sj = 0;
				mj = 0;
				hj = 0;
				tar = 1;
			}			
		});
		
		return panel;
	}
	
	
	
	public static void main(String[] args){
		Watch w = new Watch();
		Component comp = w.createCom();
		
		t1 = new Thread(w);
		t2 = new Thread(w);
		
		JFrame frame = new JFrame("定时器");
		frame.getContentPane().add(comp, BorderLayout.CENTER);
		frame.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent e){
				System.exit(0);
			}
		});
		frame.pack();
		frame.setVisible(true);		
	}



	public void run() {
		if(tar == 0){
			while(true){
				si++;
				if(si>59){
					si = 0;
					mi++;
				}
				if(si<10){
					ssi = "0" + si;
				}else{
					ssi = "" + si;
				}
				
				if(mi>59){
					mi = 0;
					hi++;
				}
				if(mi<10){
					smi = "0" + mi;
				}else{
					smi = "" + mi;
				}
				
				if(hi<10){
					shi = "0" + hi;
				}else{
					shi = "" + hi;
				}				
				label1.setText(shi+":"+smi+":"+ssi);
				if(label1.getText().equals("00:00:10")){
					music();				
				}
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}	
		}else if(tar == 1){
			while(true){
				sj++;
				if(sj>59){
					sj = 0;
					mj++;
				}
				if(sj<10){
					ssj = "0" + sj;
				}else{
					ssj = "" + sj;
				}
				
				if(mj>59){
					mj = 0;
					hj++;
				}
				if(mj<10){
					smj = "0" + mj;
				}else{
					smj = "" + mj;
				}
				
				if(hj<10){
					shj = "0" + hj;
				}else{
					shj = "" + hj;
				}
				label2.setText(shj+":"+smj+":"+ssj);
				try {
					Thread.sleep(1000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}
		}
	}
	
	
	public void music(){
		File path = new File("f:"+File.separator+"music"+File.separator+"single"+File.separator);
		File file = new File(path,"info.wav");
		try {
			InputStream fis = new FileInputStream(file);
			AudioStream as = new AudioStream(fis);
			AudioPlayer.player.start(as);
		} catch (FileNotFoundException e) {			
			e.printStackTrace();
		} catch (IOException e) {			
			e.printStackTrace();
		}		
	}
}

⌨️ 快捷键说明

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