当前位置: 首页 > 知识库问答 >
问题:

我如何使JLabel在没有最终字符串的情况下通过不同的线程进行更改?

谢鸿飞
2023-03-14

我知道这似乎是一个反复询问和回答的问题,但即使在梳理堆栈溢出数小时后,我仍然无法解决问题。如果我错过了一些明显的东西,请提前向我道歉。

每次线程启动时,我都需要更改JLable的文本,当线程结束时,我需要再次更改JLable的文本。简单地说,我试图显示当前正在运行的线程的数量。

JobQueueView是一个静态的最终JLabel。main是具有JLabel的jFrame。jobqueue是一个静态int。

在每个线程的开始处:

jobQueue += 1; refreshQueue();

在每个线程的末尾:

jobQueue -= 1;refreshQueue();

最后

html" target="_blank">public void refreshQueue() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                new Main().jobQueueView.setText(Integer.toString(jobQueue));
            }
        });

    }

这不起作用。有什么想法吗?谢谢

编辑:按照Andrew Thompson的指令,在运行的应用程序上Swing JLabel文本更改:在按钮单击事件上

我可以从Java的线程更改标签的文本吗?:必须使弦最后。我不能。

从另一个线程更新JLabel:使用计时器,我需要线程计数

当从另一个方法进行setText时,JPanel上的JLabel不会更新:尝试了给定的解决方案。不起作用

Swing中的线程和JLabel-不能正常工作:更多的按钮点击但不同的解决方案。还是不起作用

共有1个答案

暨正真
2023-03-14

看来你每次都在创建一个新的框架。

新建Main().jobqueueview.settext(integer.toString(jobQueueCount));

所以您有多个帧但只有一个静态标签。这可能会造成问题。通过如下所示的静态方式访问jobQueueView。

Main.JobQueueView.SetText(Integer.ToString(jobQueueCount));

 类似资料:
  • 我只需要"解除屏蔽"我的终端后...有一些选项或setpup为它? 注意:我的服务正在使用,因此假设不需要在命令行上使用。 PS:我需要保持容器运行,我不需要使用

  • 问题内容: 我想在写笔记的页面上更改查询字符串。保存笔记时,我希望查询字符串具有该笔记的条目。因此,在初始保存之后,用户可以根据查询字符串进行更新。但是要更新查询字符串,我需要进行完整的回发。无论如何有这样改变查询字符串? 问题答案: 否,您必须重新加载才能更改当前查询字符串。您可以通过()使用网址的片段部分。设置片段部分可以使您无需重新加载即可向浏览器历史记录中添加一些条目。 例如,如果您当前的

  • 你好团队, 我正在我的系统上运行一个Maven构建(mvn clean install),Maven构建在下面的代码行之后被终止,没有任何错误。 我使用的是最新的maven版本3.6.3(硬件配置-英特尔i5第4代处理器和16 GB RAM)。 下面是我用来执行项目maven构建的命令。 在IntelliJ中: D:\Software\jdk-11.0.10 9\bin\java。exe-Dmav

  • 问题内容: 我想用python来做 。我想在中的此示例中做什么: 在C中: 输出: 在Python中: . 在Python中print会添加或空格,如何避免呢?现在,这只是一个例子,不要告诉我可以先构建一个字符串然后再打印它。我想知道如何将字符串”append”到。 问题答案: 在Python 3中,你可以使用函数的和参数: 不在字符串末尾添加换行符: 在要打印的所有函数参数之间不添加空格: 你可

  • 我正在建立一个应用程序,用户将把他们的测试和作业和任何东西。我想知道我的应用程序是否有可能在测试前一周和一天发出通知? 我看到的到处都是firebase通知和push通知。 我不想要这些在线通知,我将需要应用程序发送他们自己离线。这可能吗?

  • 我正在尝试对字符串进行大小写排序--不敏感地不导入任何东西。使用很容易做到这一点,但我想不出没有它的方法。我只把它分类到acdabcce...有什么想法吗?