gpt4 book ai didi

java - 使用swing在java中计算和打印时间

转载 作者:行者123 更新时间:2023-12-01 13:38:56 25 4
gpt4 key购买 nike

我正在尝试使用一个线程实现一个计时器,并使用另一个线程将其打印在 JButton 上。我的课时间是这样的:

public class Time extends Thread 
{
int counter = 0;
public String currentTime = new String();


public String printFormat(int second)
{
return String.format("%d:%d", second/60, second%60);
}

synchronized public void count(int minute) throws InterruptedException
{
minute *= 60;
while(minute >= 0)
{
wait(1000);
minute--;
currentTime = printFormat(minute);
System.out.println(currentTime);
}

}

我的主线程是这样的:

     button.setText(time.currentTime);

这段代码有什么问题吗?

最佳答案

"if you can explain it using java swing timer , I would appreciate that"

如果您想使用javax.swing.Timer,请执行以下操作,这非常简单。

  • 与为按钮设置 ActionListener 的方式相同,您也可以为计时器执行相同的操作。除了不是由按钮触发事件外,它是由计时器在您为其设置的每个持续时间段内触发的。
  • 对于像计时器这样的时钟,您可以将其设置为 1000,指示每 1000 毫秒做某事

在这个特殊的情况下 例如,我只是使用我设置的计数值设置按钮的文本 每次触发计时器事件时加一。这是Timer代码

Timer timer = new Timer(1000, new ActionListener(){
public void actionPerformed(ActionEvent e) {
button.setText(String.valueOf(count));
count++;
}
});
timer.start();

如您所见,非常简单

您可以运行此示例

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.Timer;


public class ButtonTimer {

private JButton button = new JButton(" ");
private int count = 1;
public ButtonTimer() {

Timer timer = new Timer(1000, new ActionListener(){
public void actionPerformed(ActionEvent e) {
button.setText(String.valueOf(count));
count++;
}
});
timer.start();

JFrame frame = new JFrame();
frame.add(button);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new ButtonTimer();
}
});
}
}

如果您需要帮助尝试找出当前的代码,请考虑发布一个我们可以测试的可运行程序。这样我们就可以看到你哪里出了问题。

<小时/>

这是关于 Concurrency With Swing 的教程

关于java - 使用swing在java中计算和打印时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21000422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com