相关疑难解决方法(0)

如何在 Java Swing 中实现空闲任务

我有一个越来越慢的 GUI 应用程序。我想开始为各种 GUI 任务引入计时——但是,我们的许多 GUI 操作会触发其他操作,然后“稍后调用”以触发其他操作。

最终,一切都安定下来,没有什么可做的了。此时,我想停止计时器并报告 GUI“动作”花费了多长时间。

我认为这样做的方法是实现一个名为invokeOnceIdle(Runnable task). 只有当 AWTEventQueue 为“空”时,该方法才会执行提供的任务。即提供的“任务”应该是队列中的最后一件事。

这样做的一种方法是,是否有一种方法可以指定“最低”优先级SwingUtilities.invokeLater- 但这是不可能的。

我接下来查看是否可以“invokeLater”一个 Runnable 来检查事件队列是否为“空”——但是没有公共方法可以查看事件队列是否真的为空。

做到这一点的最佳方法是什么?

java swing awt event-dispatch-thread awt-eventqueue

3
推荐指数
1
解决办法
2924
查看次数

从Java中的另一个线程更新JTextField

我正在制作一个游戏客户端/服务器,我正在新的线程更新客户端GUI上的一些信息(使用Swing).我正在尝试使用SwingUtilities但它不起作用.另外,我听说SwingUtilities每次使用它都会创建一个新线程,所以我也在寻找一种新方法(我有10个左右的JTextFields要更新).有没有办法在不使用SwingUtilities的情况下完成?这就是我现在所拥有的.

SwingUtilities.invokeLater(    
        new Runnable() {    
           public void run()    
           {    
              Client.status.setText("status = "+status); 
           }    
        });
Run Code Online (Sandbox Code Playgroud)

java user-interface swing client multithreading

3
推荐指数
1
解决办法
3477
查看次数