📄 watch.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 + -