java课设秒表_Java写的秒表

import java.awt.*;

import javax.swing.*;

import java.awt.event.*;

public class StopWatch extends WindowAdapter{

static JFrame jf=new JFrame();

static TimeRun t;

public StopWatch(){

jf.setSize(300,100);

jf.setTitle("秒表");

jf.setVisible(true);

jf.setLocation(500,500);

jf.addWindowListener(this);

}

public static void main(String args[]){

StopWatch w=new StopWatch();

TimeRun t=new TimeRun();

t.run();

}

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

class TimeRun extends Thread implements ActionListener{

JLabel jl=new JLabel("时间");

JTextField jtf=new JTextField(" ");

JLabel jl2=new JLabel("秒");

JButton start=new JButton("开始");

JButton stop=new JButton("暂停");

JButton clear=new JButton("清零");

JPanel jp1=new JPanel();

JPanel jp2=new JPanel();

private float time=0;

private boolean Run=false;

private String time2str(float t) {

int h = (int)t/36000;

int m = ((int)t-h*36000)/600;

double s = (t%600)/10.00;

return String.format("%02d : %02d : %04.1f", h,m,s);

}

public TimeRun(){

jl.setAlignmentX(JLabel.CENTER_ALIGNMENT);

jl2.setAlignmentX(JLabel.CENTER_ALIGNMENT);

jtf.setHorizontalAlignment(JTextField.CENTER);

jtf.setColumns(15);

jp1.add(jl,BorderLayout.WEST);

jp1.add(jtf,BorderLayout.CENTER);

jp1.add(jl2,BorderLayout.EAST);

jp2.setLayout(new FlowLayout());

jp2.add(start);

jp2.add(stop);

jp2.add(clear);

StopWatch.jf.add(jp1,BorderLayout.CENTER);

StopWatch.jf.add(jp2,BorderLayout.SOUTH);

StopWatch.jf.setVisible(true);

start.addActionListener(this);

stop.addActionListener(this);

clear.addActionListener(this);

}

public void run() {

jtf.setText(time2str(time));

while (!this.isAlive() && !this.isInterrupted()) {

if (Run) {

jtf.setText(time2str(time));

try {

Thread.sleep(100);

} catch (InterruptedException e1) {

}

time += 1;

}

}

}

public void actionPerformed(ActionEvent e){

String event=e.getActionCommand();

if(event=="开始"){

StopWatch.jf.setTitle("Start...");

Run=true;

start.setEnabled(false);

stop.setEnabled(true);

clear.setEnabled(false);

}else if(event=="暂停"){

Run=false;

StopWatch.jf.setTitle("Pause...");

stop.setEnabled(false);

start.setEnabled(true);

clear.setEnabled(true);

}else if(event=="清零"){

time=0;

Run=false;

jtf.setText(""+time);

StopWatch.jf.setTitle("Clean...");

start.setEnabled(true);

stop.setEnabled(false);

clear.setEnabled(false);

}

}

}

运行结果如下:

0818b9ca8b590ca3270a3433284dd417.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值