我必须创建一个复制秒表的Java小程序。到目前为止,我有一个带有“开始/停止”按钮的运行小程序。我不知道该如何做,是显示当按下“停止”/“开始”按钮时,时间在上升和停止的过程。这是我的密码。谢谢!
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)
// {
//
// }
}发布于 2014-05-01 12:46:25
我建议您通常将业务逻辑与GUI界面分开,因此如果我是您,我将创建一个StopWatch类来处理其中的部分,并在这个gui中使用这个对象和fx "start/stop“方法。
如何做秒表班..。有几种方法。您可以使用fx有一个开始方法,该方法以秒为参数,获取开始方法中的当前系统时间(以毫秒为单位),并运行一个循环,直到时间超过用户输入参数的时间为止。
基本上,您得到当前时间(毫秒),运行一个循环,并在循环中执行一个if语句,说类似的话。
编辑:
还请记住,您的类可能需要扩展线程类,以便它能够正确地运行,并与您的gui同时运行。
public void start(int amountOfTime) {
int startTime = System.currentTimeMillis();
while (some boolean is true) {
if (System.currentTimeMillis()>=startTime+(amountOfTime*1000)) boolean = false;
}
}我在这里添加了一些代码,您应该能够根据自己的喜好进行更正,并计算出其余的代码。
至于阻止它..。您可以简单地使循环依赖于布尔值,并使用停止方法或类似的方法对其进行更改。
至于用图形来展示它..。你只需插入一个标签并不断更新。
https://stackoverflow.com/questions/23407719
复制相似问题