首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java StopWatch小程序进展

Java StopWatch小程序进展
EN

Stack Overflow用户
提问于 2014-05-01 12:31:13
回答 1查看 936关注 0票数 0

我必须创建一个复制秒表的Java小程序。到目前为止,我有一个带有“开始/停止”按钮的运行小程序。我不知道该如何做,是显示当按下“停止”/“开始”按钮时,时间在上升和停止的过程。这是我的密码。谢谢!

代码语言:javascript
复制
   package stopwatch;

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.Duration;
import java.time.LocalDateTime;

public class stopwatch extends Applet implements ActionListener {
    private static final long serialVersionUID = 1L;
    Button start;
    Button stop;
    LocalDateTime localdt0;
    LocalDateTime localdt1;

    public void init(){
        start = new Button("Start");
        stop = new Button("Stop");

        setLayout(new BorderLayout()); 

        //start.setBounds(new Rectangle(20, 20, 100, 30));

        add(start, "North");
        add(stop, "South");
        stop.setEnabled(false);

        start.addActionListener(this);
        stop.addActionListener(this);
    }

    public void actionPerformed(ActionEvent e)
    {
        Duration d;
        String s;

        if (e.getSource() == start) {
            start.setEnabled(false);
            stop.setEnabled(true);
            localdt0 = LocalDateTime.now();
        }
        else {
            stop.setEnabled(false);
            start.setEnabled(true);
            localdt1 = LocalDateTime.now();
            d = Duration.between(localdt1, localdt0);
            s = d.toString();
            s += "";
        }
    }

    //  public void paint(Graphics g)
    //  {
    //      
    //  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-01 12:46:25

我建议您通常将业务逻辑与GUI界面分开,因此如果我是您,我将创建一个StopWatch类来处理其中的部分,并在这个gui中使用这个对象和fx "start/stop“方法。

如何做秒表班..。有几种方法。您可以使用fx有一个开始方法,该方法以秒为参数,获取开始方法中的当前系统时间(以毫秒为单位),并运行一个循环,直到时间超过用户输入参数的时间为止。

基本上,您得到当前时间(毫秒),运行一个循环,并在循环中执行一个if语句,说类似的话。

编辑:

还请记住,您的类可能需要扩展线程类,以便它能够正确地运行,并与您的gui同时运行。

代码语言:javascript
复制
public void start(int amountOfTime) {
  int startTime = System.currentTimeMillis();
  while (some boolean is true) {
    if (System.currentTimeMillis()>=startTime+(amountOfTime*1000)) boolean = false;

  }
}

我在这里添加了一些代码,您应该能够根据自己的喜好进行更正,并计算出其余的代码。

至于阻止它..。您可以简单地使循环依赖于布尔值,并使用停止方法或类似的方法对其进行更改。

至于用图形来展示它..。你只需插入一个标签并不断更新。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23407719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档