java - 每秒用多线程更新 JLabel

标签 java multithreading

我尝试减少线程计数,我想在我的 Jlabel 中更新此计数,但它总是显示空标签,这是我的代码

    public static String all;
private static int sec = 59, hour = 7, min = 59;
@Override
public void run() {
    while (sec > 0) {
        System.out.format("%02d:" + "%02d:" + "%02d\n", hour, min, sec);
        try {
            sec--;
            Thread.sleep(1000L);
        } catch (InterruptedException e) {
        }
        if (sec == 0) {
            if (min == 0) {
                if (hour == 0) {
                    break;
                }
                hour--;
                min = 59;
            }
            min--;
            sec = 59;
        }
        StringBuilder builder = new StringBuilder();
        builder.append(String.valueOf(hour))
                .append(":")
                .append(String.valueOf(min))
                .append(":")
                .append(String.valueOf(sec));
        all = builder.toString();
        tesmy.myNum(all); //this method send the for my gui the time every second
    }
}
 }

我确信他发送的时间是正确的,但我不知道如何每秒更新我的标签 我在线程中玩这门课 这是我的 Jlabel

JLabel jLabel = new JLabel();
    jLabel.setBounds(175, 170, 70, 20);
    Thread t = new Thread(new Runnable() {
        @Override
        public void run() {
            jLabel.setText(myString);
        }
    });

    add(jLabel);

最佳答案

为什么要使用Thread?

Java 提供了 Swing Timer 来每秒更新标签的文本。

请参阅本教程 here

希望这有帮助:)

关于java - 每秒用多线程更新 JLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41256758/

相关文章:

java - 为什么 String.equals() 方法在 JSTL Core 标签 <c :if>? 中不起作用

java - 安装 play 框架 mongodb morphia 模块

java - 执行者什么时候真正创建新线程

php - PHP 有线程吗?

.net - 正确的方法来使Winforms UI阻塞对话框,直到出现一些非用户驱动的事件条件?

C#:如何防止调用失败

java - 如何使Java对象同步?哪种方法更好,为什么?

java - 如何解析 HTML 标题

java竞争条件方法调用与原子调用

java - 如何确定 WebElement 是否存在于 Selenium 中?