`

Java 定时器类 Timer 使用方法

阅读更多
import java.awt.*;
import java.awt.event.*;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Timer;
import javax.swing.*;

/**
 * シンプルなタイマー
 */
public class SimpleTimer extends JWindow {

	/**
	 * メイン関数
	 */
	public static void main(String[] args) {

		SimpleTimer simpleTimer = new SimpleTimer();
		simpleTimer.pack();
		simpleTimer.setAlwaysOnTop(true);
		simpleTimer.setVisible(true);
	}

	private Long startTimeMillis;

	private JLabel label;

	private SimpleDateFormat dateFormat;

	private Timer timer;

	/**
	 * コンストラクタ
	 */
	public SimpleTimer() {

		initDateFormat();
		initConponents();
		resetTime();
		updateLabelText();
		startTimer();
	}

	/**
	 * DateFormatの初期化
	 */
	private void initDateFormat() {

		dateFormat = new SimpleDateFormat("HH:mm:ss");
		dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
	}

	/**
	 * GUIコンポーネントの初期化
	 */
	private void initConponents() {

		label = new JLabel();
		label.setFont(new Font(label.getFont().getName(), Font.BOLD, 14));
		label.setOpaque(true);
		label.setBackground(Color.black);
		label.setForeground(Color.white);
		label.setBorder(BorderFactory.createEmptyBorder(0, 2, 0, 2));
		getContentPane().add(label);

		final JPopupMenu popup = new JPopupMenu();
		JMenuItem menuItem1 = new JMenuItem("Reset");
		menuItem1.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {

				resetTime();
			}
		});
		popup.add(menuItem1);
		JMenuItem menuItem2 = new JMenuItem("Exit");
		menuItem2.addActionListener(new ActionListener() {

			public void actionPerformed(ActionEvent e) {

				System.exit(0);
			}
		});
		popup.add(menuItem2);
		label.setComponentPopupMenu(popup);

		label.addMouseListener(new MouseAdapter() {

			@Override
			public void mouseClicked(MouseEvent e) {

				if (e.getButton() == MouseEvent.BUTTON2
						&& e.getClickCount() == 1) {
					popup.setVisible(true);
				}
			}
		});
	}

	/**
	 * リセット
	 */
	private void resetTime() {

		startTimeMillis = Calendar.getInstance().getTimeInMillis();
	}

	/**
	 * ラベル更新
	 */
	private void updateLabelText() {

		SwingUtilities.invokeLater(new Runnable() {

			public void run() {

				long elapsedTime = Calendar.getInstance().getTimeInMillis()
						- startTimeMillis;

				Date date = new Date(elapsedTime);

				label.setText(dateFormat.format(date));
			}
		});
	}

	/**
	 * タイマー開始
	 */
	private void startTimer() {

		timer = new Timer();
		timer.schedule(new TimerTask() {

			@Override
			public void run() {

				updateLabelText();

			}
		}, 0, 1000);
	}
}
分享到:
评论

相关推荐

    java定时器(timer类使用详解)

    Java定时器,也被称为`Timer`类,是Java标准库中的一个强大工具,它允许开发者在指定的时间间隔执行任务,从而实现定时操作。这个类在`java.util`包中定义,是实现定时任务调度的核心。在本文中,我们将深入探讨`...

    java 定时器(Timer)

    Java定时器(Timer)是Java Swing库中的一个类,它提供了调度任务在未来某个时间执行的能力。这个类主要用于在GUI应用程序中实现定时触发某些操作,比如更新界面、执行动画或者执行周期性的后台任务。Timer类结合了...

    JAVA定时器之Timer+TimerTask

    在Java编程语言中,`Timer`和`TimerTask`是两个关键类,它们构成了Java的定时执行机制。这两个类在处理周期性任务或者延迟任务时非常有用,它们可以帮助开发者实现程序在特定时间点或者按照一定间隔执行特定操作的...

    java定时器Timer

    Java定时器(Timer)是Java.util包中的一个类,它提供了调度任务的能力,可以在特定的延迟后或定期执行。在Java编程中,我们有时需要在指定时间执行某些操作,例如发送提醒、执行清理任务等,这时候Java Timer就派上...

    Java定时器的使用 Java程序

    本篇文章将深入探讨Java定时器的使用方法和关键概念。 ### 1. Java定时器类介绍 Java定时器类`Timer`和`TimerTask`是配合使用的。`Timer`用于创建定时器实例并调度任务,而`TimerTask`则是一个抽象类,用于定义要...

    Java定时器Timer简述共8页.pdf.zip

    Java定时器(Timer)是Java语言提供的一种用于执行定时任务的工具类,它位于java.util包下。在Java编程中,我们有时需要在特定的时间间隔内执行某些操作,例如每隔一段时间更新数据、发送通知或者执行定期维护等。这...

    Java定时器Timer简述.pdf

    Java定时器Timer是Java编程语言中用于计划执行任务的一种工具类。Timer类主要提供了定时任务的安排执行,对于需要在指定时间后、或者以固定周期重复执行任务的场景非常有用。本文档中介绍的Timer类的实现以及如何...

    java定时器timer制作

    根据给定的信息,本文将详细解析Java定时器的制作及应用,同时对比.NET中的三种不同类型的定时器,以便更好地理解定时任务的实现方式及其特点。 ### Java定时器基础 Java中定时器(Timer)主要用于执行周期性的...

    java5定时器java Timer

    这个类是Java早期版本中对定时任务管理的一个重要实现,尽管在Java 5之后,`java.util.concurrent`包中的`ScheduledExecutorService`被推荐使用,但`Timer`仍然在很多场景下被广泛采用。 `Timer`类主要有两个核心...

    JAVA中定时器的使用

    JAVA 中提供了多种方式来实现定时器,包括使用 Timer 和 TimerTask 类,使用 ScheduledExecutorService 等。 在 JAVA 中,Timer 和 TimerTask 是两个基本的类,用于实现定时器。Timer 类用于创建一个新的定时器,而...

    java timer定时器详解(附详细代码)

    Java Timer定时器主要是通过java.util.Timer和java.util.TimerTask两个类来实现的。 Java.util.Timer类 java.util.Timer类是Java Timer定时器的核心类,它可以执行任务并且可以指定任务的执行频率。Timer类有两种...

    Timer定时器的使用方法

    【Timer定时器的使用方法】 在Java编程语言中,`java.util.Timer` 和 `java.util.TimerTask` 类是用于执行定期或延时任务的核心组件。它们允许开发者在指定的时间间隔内执行特定的操作,这对于实现定时任务,如定时...

    java定时器的使用

    在应用开发中,经常需要一些周期性的操作,比如每5分钟执行某一操作等。 对于这样的操作最方便、高效的实现方式就是使用java.util.Timer工具类。

    java 定时器任务timer 随tomcat启动而启动 同步启动

    我们通常写的timer都是用main方法写的定时器,但同样我们也需要根据服务器启动后定时器也启动的 定时执行任务。不过有个致命伤就是集群方面跟quartz不能比,此方法代码做参考不错,如果要用,那么这个方法在一台...

    java_Timer_thread.rar_java thread timer_java timer_java 定时器_java

    Java中的定时器(Timer)是Java.util包下用于执行定期任务的一个类,它与线程(Thread)紧密关联,能够帮助开发者实现定时执行特定任务的需求。这个机制在多线程编程(multithreading)中非常有用,特别是在需要定期...

    java定时器timer的使用方法代码示例

    Java定时器(Timer)是Java.util包中的一个类,它提供了调度任务的能力,可以在未来的某个时间点或定期执行任务。在上述代码示例中,展示了如何在Web应用启动时使用Timer来安排定时任务。 首先,我们需要了解Timer...

    java定时器设置及停止的方法

    `TimerTask`是`Timer`调度的任务,是一个抽象类,你需要继承并实现`run()`方法来定义要定时执行的逻辑。以下是如何使用`Timer`和`TimerTask`创建定时任务: ```java Timer timer = new Timer(); TimerTask task = ...

    Java定时器

    在Java定时器的应用中,`Swing Timer`是一个特别值得注意的类,它是`javax.swing.Timer`,它与`java.util.Timer`不同,主要用于`Swing`组件的事件驱动。`Swing Timer`的优点在于它的回调是在事件调度线程中执行的,...

Global site tag (gtag.js) - Google Analytics