5

我需要在一段时间内将测试数据提供给 Swing 间隔。数据集解析很长,所以我SwingWorker在后台使用a来解析它。在将数据提供给 GUI 时(例如,每秒一个项目),我可以从 开始TimerSwingWorker但这似乎有点过头了。有什么理由不从内部睡觉SwingWorker

干杯

4

2 回答 2

4

Since SwingWorker doesn't run on the EDT, sleeping within is perfectly fine.

SwingWorker is designed for situations where you need to have a long running task run in a background thread and provide updates to the UI either when done, or while processing.

In my opinion, a Timer in addition to a SwingWorker would be overkill. Instead, just publish the parsed test data whenever possible, even at irregular intervals.

于 2011-06-07T12:35:55.867 回答
3

当您让 SwingWorker 休眠时,它不会加载数据。如果需要,那么这种方法很好。

如果您想继续加载数据并只是调整向 GUI 提供数据的速度,那么似乎更好的设计是在 GUI 中启动一个计时器,它会每隔一段时间从工作人员而不是工作人员那里检查和提取新数据必须invokeLater调用回 GUI。

于 2011-06-07T12:42:33.073 回答