谁能帮我用java多线程设计一个可多个同时使用的计时器吗?
运用JAVA中的线程技术,在设计一个用户界面的基础上,设计计数器(可多个同时使用)感激不尽啊!!!!看来我遇贵人了,呵呵~不过大恩人啊,能不能在界面上稍作改动一下呢,就是...
运用JAVA 中的线程技术,在设计一个用户界面的基础上,设计计数器(可多个同时使用)
感激不尽啊!!!!看来我遇贵人了,呵呵~不过大恩人啊,能不能在界面上稍作改动一下呢,就是把计时器的每个小计时器设计成三个按钮:开始_暂停_置零_00:00:00。假如还可用图形的形式显示时间及提示音提示,那就perfect了!!!! 展开
感激不尽啊!!!!看来我遇贵人了,呵呵~不过大恩人啊,能不能在界面上稍作改动一下呢,就是把计时器的每个小计时器设计成三个按钮:开始_暂停_置零_00:00:00。假如还可用图形的形式显示时间及提示音提示,那就perfect了!!!! 展开
2个回答
展开全部
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class FrameTest extends JFrame {
public FrameTest() {
super("Swing 例子");
this.setSize(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
this.add(new CounterJButton());
this.add(new CounterJButton());
this.add(new CounterJButton());
this.setVisible(true);
}
static class CounterJButton extends JButton implements Runnable,
ActionListener {
private boolean started = false;
private int count = 0;
public CounterJButton() {
super("按我开始计数");
this.addActionListener(this);
}
public void run() {
while (started) {
this.setText("按我暂停 " + String.valueOf(count++));
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
}
public void actionPerformed(ActionEvent e) {
if (started) {
this.started = false;
this.setText("按我恢复计数 " + count);
} else {
this.started = true;
new Thread(this).start();
}
}
}
public static void main(String[] args) {
new FrameTest();
}
}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class FrameTest extends JFrame {
public FrameTest() {
super("Swing 例子");
this.setSize(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
this.add(new CounterJButton());
this.add(new CounterJButton());
this.add(new CounterJButton());
this.setVisible(true);
}
static class CounterJButton extends JButton implements Runnable,
ActionListener {
private boolean started = false;
private int count = 0;
public CounterJButton() {
super("按我开始计数");
this.addActionListener(this);
}
public void run() {
while (started) {
this.setText("按我暂停 " + String.valueOf(count++));
try {
Thread.sleep(100);
} catch (InterruptedException e) {
}
}
}
public void actionPerformed(ActionEvent e) {
if (started) {
this.started = false;
this.setText("按我恢复计数 " + count);
} else {
this.started = true;
new Thread(this).start();
}
}
}
public static void main(String[] args) {
new FrameTest();
}
}
2010-12-28
展开全部
可以用多线程设计,搞三个按钮,每点击一次增加一个线程。把增加计时器线程部分写入actionPerformed中,不过多线程本身就是用sleep()来实现的,在sleep参数中你可以设定少一点的毫秒数,好像不是很理想,时间不会很精确。多线程跟适合于多个同时进行的动作,或动画和电源。当然也可用于类似会计收银买票这些同步。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询