
正文
java秒表计时器代码 java时钟代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
求java的计时器代码,应该比较简单的,来看看吧。
package test;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Test5 extends Applet {
private final Panel pan = new Panel();
private final Label time = new Label();
private final Button btnGo = new Button("开始");
private final Button btnPouse = new Button("暂停");
private final Button btnReset = new Button("复位");
private final StopwatchThread swThread = new StopwatchThread();
private class btnGoListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
swThread.go();
btnGo.setEnabled(false);
}
}
private class btnPouseListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if(btnGo.isEnabled()){
return ;
}
if (btnPouse.getLabel().equals("继续")) {
swThread.go();
btnPouse.setLabel("暂停");
} else if (btnPouse.getLabel().equals("暂停")) {
swThread.noGo();
btnPouse.setLabel("继续");
}
}
}
private class btnResetListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
swThread.reset();
btnGo.setEnabled(true);
btnGo.setLabel("开始");
btnPouse.setLabel("暂停");
}
}
private class StopwatchThread extends Thread {
private boolean going = false;
private long prevElapsed = 0;
private Date startDate = new Date();
private long elapsedTime() {
return prevElapsed +
(going ? new Date().getTime() - startDate.getTime() : 0);
}
private String msToString(long time) {
System.out.println(time+" "+((0*60+2)*1000+999));
if(((99*60+59)*1000+983)=time((99*60+59)*1000+999)=time){//((0*60+2)*1000+983)=time((0*60+2)*1000+999)=time
if (time % 1000 990)
time += 2;
swThread.noGo();
}
String ms, sec, min;
if (time % 10 = 5)
time += 5;
ms = Long.toString(time % 1000);
while (ms.length() 3)
ms = "0" + ms;
ms = ms.substring(0, ms.length() - 1);
time /= 1000;
sec = Long.toString(time % 60);
if (sec.length() == 1) sec = "0" + sec;
time /= 60;
min = Long.toString(time);
return min + ":" + sec + "." + ms;
}
public void go() {
startDate = new Date();
going = true;
}
public void noGo() {
prevElapsed = elapsedTime();
going = false;
}
public void reset() {
going = false;
prevElapsed = 0;
}
public void run() {
while (true) {
time.setText(msToString(elapsedTime()));
yield();
}
}
}
public void init() {
setLayout(new GridLayout(2,2));
setBackground(Color.lightGray);
setForeground(Color.black);
pan.setLayout(new GridLayout(3,2));
pan.add(new Label("计时:"));
time.setForeground(Color.blue);
pan.add(time);
pan.add(btnGo);
pan.add(btnPouse);
pan.add(btnReset);
pan.add(new Label());
add(pan);
btnGo.addActionListener(new btnGoListener());
btnReset.addActionListener(new btnResetListener());
btnPouse.addActionListener(new btnPouseListener());
swThread.setDaemon(true);
swThread.start();
}
public static void main(String[] args) {
Test5 applet = new Test5();
Frame aFrame = new Frame("计时器");
aFrame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
aFrame.add(applet, BorderLayout.CENTER);
aFrame.setSize(400, 200);
applet.init();
applet.start();
aFrame.setVisible(true);
}
}
可以改变有注释的那个if语句里面的值来判断什么时候停止
相关问答
Q1: JAVA秒表倒计时程序,用swing界面显示,请大家一定要帮帮小弟哈,我实在做不来这个,谢谢了。120分!!!
package com;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Tidy extends JFrame
{
private static final long serialVersionUID = 1L;
private static final String[] NS =
{ "秒表倒计时器", "时", "分", "秒", "请输入java秒表计时器代码你倒计时java秒表计时器代码的时间(分钟数):", "java秒表计时器代码你一共用:", "时", "分", "秒", "开始倒计时", "暂停计时", "停止计时" };
private static int index = 0;
private long ms = 0;
private boolean isPaused = false;
private Timer timer;
public Tidy(String title)
{
setTitle(title);
}
private Tidy addComponents()
{
final JTextField[] ts = new JTextField[7];
for(int i = 0; i 7; i++)
{
ts[i] = new JTextField();
ts[i].setPreferredSize(new Dimension(50, 20));
if(i != 3)
{
ts[i].setEditable(false);
}
}
JLabel[] ls = new JLabel[9];
for(int i = 0; i 9; i++)
{
ls[i] = new JLabel(NS[index++]);
}
final JButton[] bs = new JButton[3];
for(int i = 0; i 3; i++)
{
bs[i] = new JButton(NS[index++]);
}
bs[0].addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
try
{
if(!isPaused)
{
long min = Long.parseLong(ts[3].getText());
long h = min / 60;
h = h 0 ? 0 : h;
long m = min - h * 60 - 1;
m = m 0 ? 0 : m;
long s = min == 0 ? 0 : 60;
ts[0].setText(h + "");
ts[1].setText(m + "");
ts[2].setText(s + "");
}
timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run()
{
long h = Long.parseLong(ts[0].getText());
long m = Long.parseLong(ts[1].getText());
long s = Long.parseLong(ts[2].getText());
s--;
ms++;
if((h != 0 || m != 0) s == 0)
{
m--;
s = 59;
}
if(h != 0 m == 0)
{
h--;
m = 59;
}
h = h 0 ? 0 : h;
m = m 0 ? 0 : m;
s = s 0 ? 0 : s;
ts[0].setText(h + "");
ts[1].setText(m + "");
ts[2].setText(s + "");
long ph = ms / 60 / 60;
long pm = ms / 60;
long ps = ms % 60;
ts[4].setText(ph + "");
ts[5].setText(pm + "");
ts[6].setText(ps + "");
if(h == 0 m == 0 s == 0)
{
bs[2].doClick();
}
}
}, 0, 1000);
bs[0].setEnabled(false);
}
catch(NumberFormatException nfe)
{
JOptionPane.showConfirmDialog(Tidy.this, "输入错误java秒表计时器代码,请重新输入分钟java秒表计时器代码的整数。", "友情提示", JOptionPane.PLAIN_MESSAGE,
JOptionPane.ERROR_MESSAGE);
}
}
});
bs[1].addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if(null != timer)
{
timer.cancel();
timer = null;
}
bs[0].setEnabled(true);
isPaused = true;
}
});
bs[2].addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
if(null != timer)
{
timer.cancel();
timer = null;
}
bs[0].setEnabled(true);
isPaused = false;
ms = 0;
}
});
JComponent[][] cs = { { ls[0] }, { ts[0], ls[1], ts[1], ls[2], ts[2], ls[3] }, { ls[4], ts[3] },
{ ls[5], ts[4], ls[6], ts[5], ls[7], ts[6], ls[8] }, { bs[0], bs[1], bs[2] } };
JPanel[] ps = new JPanel[5];
JPanel wrap = new JPanel();
wrap.setLayout(new BoxLayout(wrap, BoxLayout.Y_AXIS));
for(int i = 0; i 5; i++)
{
ps[i] = new JPanel(new FlowLayout(FlowLayout.CENTER));
for(int j = 0; j cs[i].length; j++)
{
ps[i].add(cs[i][j]);
}
wrap.add(ps[i]);
}
add(wrap);
return this;
}
private Tidy init()
{
pack();
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
return this;
}
public static void main(String[] args)
{
Tidy tidy = new Tidy(NS[index]);
tidy.addComponents().init();
}
}
Q2: 做一个Java计时器?
您好,茫茫人海之中,能为君排忧解难实属朕的荣幸,在下拙见,若有错误,还望见谅!。展开全部
怎么还没人回答,看不过去了,用不用多线程根据你的程序需要,
import java.io.IOException;
import java.util.Timer;
public class TimerTest {
public static void main(String[] args){
Timer timer = new Timer();
timer.schedule(new MyTask(), 1000, 2000);//在1秒后执行此任务,每次间隔2秒,如果传递一个Data参数,就可以在某个固定的时间执行这个任务.
while(true){//这个是用来停止此任务的,否则就一直循环执行此任务了
try {
int ch = System.in.read();
if(ch-'c'==0){
timer.cancel();//使用这个方法退出任务
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
static class MyTask extends java.util.TimerTask{
@Override
public void run() {
//你要进行的操作
}
}
}
大概就是这样了,在根据你的业务需要查一下资料,就可以搞定了!非常感谢您的耐心观看,如有帮助请采纳,祝生活愉快!谢谢!
Q3: java怎么每隔一秒钟输出一个随机数(1-10之间)
可以用 java.util.Timer(计时器) 以及 java.util.TimerTask(计时任务) 来实现,具体代码如下:
import java.io.IOException;
import java.util.Random;
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
// 创建一个计时器
Timer timer = new Timer();
// 开启一个计时调度,延迟 0毫秒(也就是立即开始执行),调度评率: 1秒
timer.schedule(new TimerTask() {
@Override
public void run() {
// 生成随机数逻辑
Random r = new Random();
int num = r.nextInt(10) + 1;
System.out.println("随机数为:" + num);
}
}, 0L, 1000L);
// timer.cancel(); // 关闭计时器
}
}
Q4: Java 秒表
package demo;
import javax.swing.*;
import java.awt.HeadlessException;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Timer extends JFrame {
private static final long serialVersionUID = 1L;
private static final String INITIAL_LABEL_TEXT = "00:00:00 000";
// 计数线程
private CountingThread thread = new CountingThread();
// 记录程序开始时间
private long programStart = System.currentTimeMillis();
// 程序一开始就是暂停的
private long pauseStart = programStart;
// 程序暂停的总时间
private long pauseCount = 0;
private JLabel label = new JLabel(INITIAL_LABEL_TEXT);
private JButton startPauseButton = new JButton("开始");
private JButton resetButton = new JButton("清零");
private ActionListener startPauseButtonListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (thread.stopped) {
pauseCount += (System.currentTimeMillis() - pauseStart);
thread.stopped = false;
startPauseButton.setText("暂停");
} else {
pauseStart = System.currentTimeMillis();
thread.stopped = true;
startPauseButton.setText("继续");
}
}
};
private ActionListener resetButtonListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
pauseStart = programStart;
pauseCount = 0;
thread.stopped = true;
label.setText(INITIAL_LABEL_TEXT);
startPauseButton.setText("开始");
}
};
public Timer(String title) throws HeadlessException {
super(title);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocation(300, 300);
setResizable(false);
setupBorder();
setupLabel();
setupButtonsPanel();
startPauseButton.addActionListener(startPauseButtonListener);
resetButton.addActionListener(resetButtonListener);
thread.start(); // 计数线程一直就运行着
}
// 为窗体面板添加边框
private void setupBorder() {
JPanel contentPane = new JPanel(new BorderLayout());
contentPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
this.setContentPane(contentPane);
}
// 配置按钮
private void setupButtonsPanel() {
JPanel panel = new JPanel(new FlowLayout());
panel.add(startPauseButton);
panel.add(resetButton);
add(panel, BorderLayout.SOUTH);
}
// 配置标签
private void setupLabel() {
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setFont(new Font(label.getFont().getName(), label.getFont().getStyle(), 40));
this.add(label, BorderLayout.CENTER);
}
// 程序入口
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception e) {
e.printStackTrace();
}
Timer frame = new Timer("计时器");
frame.pack();
frame.setVisible(true);
}
private class CountingThread extends Thread {
public boolean stopped = true;
private CountingThread() {
setDaemon(true);
}
@Override
public void run() {
while (true) {
if (!stopped) {
long elapsed = System.currentTimeMillis() - programStart - pauseCount;
label.setText(format(elapsed));
}
try {
sleep(1); // 1毫秒更新一次显示
} catch (InterruptedException e) {
e.printStackTrace();
System.exit(1);
}
}
}
// 将毫秒数格式化
private String format(long elapsed) {
int hour, minute, second, milli;
milli = (int) (elapsed % 1000);
elapsed = elapsed / 1000;
second = (int) (elapsed % 60);
elapsed = elapsed / 60;
minute = (int) (elapsed % 60);
elapsed = elapsed / 60;
hour = (int) (elapsed % 60);
return String.format("%02d:%02d:%02d %03d", hour, minute, second, milli);
}
}
}
你可以试试,希望能帮到你!
Q5: 用java编写一个倒计时器代码。
import java.awt.BorderLayout;import java.awt.Container;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;public class TimerDemo extends JFrame implements ActionListener { private static final long serialVersionUID = 201306211111L; private JTextField screen = new JTextField("0"); private JButton start = new JButton("开始"); private JButton reset = new JButton("重置"); private JPanel panel = new JPanel(); private boolean isRunning; private int time; private int timeBetween; public TimerDemo(int timeBetween) { super("计时器"); this.timeBetween = timeBetween; try { init(); } catch (Exception e) { e.printStackTrace(); } } public TimerDemo() { super("计时器"); this.timeBetween = 100; try { init(); } catch (Exception e) { e.printStackTrace(); } } private void init() { panel.setLayout(new GridLayout()); panel.add(start); panel.add(reset); start.addActionListener(this); reset.addActionListener(this); screen.setFont(new Font("幼圆", Font.BOLD, 60)); screen.setHorizontalAlignment(JTextField.CENTER); screen.setEditable(false); Container c = getContentPane(); c.setLayout(new BorderLayout()); c.add(panel, BorderLayout.SOUTH); c.add(screen, BorderLayout.CENTER); this.setSize(200, 150); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); this.setLocationRelativeTo(null); this.setVisible(true); } public static void main(String[] args) { new TimerDemo(1);// 设定 1ms/次 // new TimerDemo(); } @Override public void actionPerformed(ActionEvent e) { if (e.getSource() == start) { if (start.getText().equals("开始")) { start.setText("暂停"); isRunning = true; } else if (start.getText().equals("暂停")) { start.setText("开始"); isRunning = false; } } if (e.getSource() == reset) { start.setText("开始"); screen.setText("0"); isRunning = false; time = 0; } new Thread(new TimeZone()).start(); } class TimeZone implements Runnable { @Override public void run() { while (isRunning) { time++; if (time = Integer.MAX_VALUE) { screen.setText("ERROR"); JOptionPane.showMessageDialog(null, "ERROR"); isRunning = false; } screen.setText(String.valueOf(time)); try { Thread.sleep(timeBetween); } catch (Exception e) { e.printStackTrace(); } } } }}
java秒表计时器代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java时钟代码、java秒表计时器代码的信息别忘了在本站进行查找喔。








