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