【问题标题】:Java Swingworker ThreadJava Swingworker 线程
【发布时间】:2012-09-08 01:35:15
【问题描述】:

我有一个关于 Java 并发的问题要问。我正在练习 Java 线程。我所做的是创建一个简单的界面,它有一个按钮和一个 JSlider。因此,当我单击按钮时,变量会增加,JSlider 也会相应移动。现在我想知道 Swingworker 是否是一个正确的选择。

【问题讨论】:

    标签: java swing swingworker


    【解决方案1】:

    您只需将 SwingWorker 用于长时间运行的任务。您所描述的将立即执行。因此,您可以在执行所有 ActionListener 的事件调度线程上执行此操作。

    【讨论】:

    • 我不这么认为......因为变量需要附加到线程并逐渐增加,并且 JSlider 根据变量值移动。如果我只使用 while 循环来执行此操作。界面将被冻结
    • 那么,是的,您可以使用 SwingWorker。但是还有 javax.swing.Timer,它是为您在评论中描述的内容而制作的。
    • 我是否必须在 JSlider 上调用 repaint()。谢谢
    • 请,每页一个问题 - 但不,您不需要调用 repaint。
    【解决方案2】:

    你可能想先profile你的代码。

    • 状态更改阻塞 EDT 的示例:herehere

    • 一个动作可能阻塞 EDT 的示例:here

    • 一个动作阻塞EDT的例子:here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-26
      • 1970-01-01
      相关资源
      最近更新 更多