栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java Swing.Timer获得实时毫秒

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java Swing.Timer获得实时毫秒

  1. 您将希望摆脱它
    while (true)
    ,而使用Swing计时器代替它,因为那是Timer的用途-在Swing GUI中重复进行调用, 不必求助于破坏线程的
    while (true)
    构造。
  2. 您将需要给您的计时器一个合理的延迟时间。0?常识告诉您不要使用此功能。12、15-更好。
  3. 为了使Swing计时器正常工作,您需要有一个活动的Swing事件线程,这可以通过显示Swing GUI,任何GUI(例如JOptionPane)来获得。

例如:

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JLabel;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.Timer;class Lsen implements ActionListener {   public static final int MSECS_PER_SEC = 1000;   public static final int SECS_PER_MIN = 60;   public static final int MIN_PER_HR = 60;   private static final String TIME_FORMAT = "%02d:%02d:%02d:%03d";   private long startTime;   private JTextField timeField;   public Lsen(JTextField timeField) {      this.timeField = timeField;   }   public void actionPerformed(ActionEvent e) {      if (startTime == 0L) {         startTime = System.currentTimeMillis();      } else {         long currentTime = System.currentTimeMillis();         int diffTime = (int) (currentTime - startTime);         int mSecs = diffTime % MSECS_PER_SEC;         diffTime /= MSECS_PER_SEC;         int sec = diffTime % SECS_PER_MIN;         diffTime /= SECS_PER_MIN;         int min = diffTime % MIN_PER_HR;         diffTime /= MIN_PER_HR;         int hours = diffTime;         String time = String.format(TIME_FORMAT, hours, min, sec, mSecs);         // System.out.println("Time: " + time);         timeField.setText(time);      }   }}public class StopWatchMain {   private static final int TIMER_DELAY = 15;   public static void main(String[] args) {      final JTextField timeField = new JTextField(10);      timeField.setEditable(false);      timeField.setFocusable(false);      JPanel panel = new JPanel();      panel.add(new JLabel("Elapsed Time:"));      panel.add(timeField);      Lsen l = new Lsen(timeField);      Timer t = new Timer(TIMER_DELAY, l);      t.start();      JOptionPane.showMessageDialog(null, panel);      t.stop();   }}

编辑
您询问长数据类型的含义。请在此处查看:原始数据类型。您会看到long表示长整数,因此您可以认为它与int相似,但是能够容忍更大的正值和负值而不会溢出。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/464368.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号