【问题标题】:Thread Result shown in text area文本区域中显示的线程结果
【发布时间】:2012-10-14 21:02:49
【问题描述】:

我想执行一个线程,它应该在特定的时间间隔后得到一些结果。现在我想在JTextArea 中显示该结果。如何从JTextArea 的线程中创建一个事件?

【问题讨论】:

标签: java multithreading swing


【解决方案1】:

这取决于你如何建立你的后台任务。

如果您使用的是普通的 ThreadRunnable,则需要在事件调度线程 (ETD) 上触发一个事件,以确保您对 UI 所做的任何更改都发生在 EDT 中。

Swing 提供了一种简单的机制,允许您将 Runnable 排入事件队列,其 run 方法将在 EDT 内执行。

// Inside you thread...
// Some block action...

SwingUtilities.invokeLater(new Runnable() {
    public void run() {
        // Executing within the EDT...
    }
});

看看

更简单的解决方案可能是使用SwingWorker 而不是普通的Thread。这将允许您在 done 方法(在 EDT 内为您执行)中对工作人员的完成采取行动

看看

【讨论】:

    猜你喜欢
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多