我的程序中有一个设置选项卡。您可以在此处设置的数据不仅可以从此面板更改。这就是为什么我想像每 5 秒一样重新加载这些数据。我认为这必须通过额外的线程来完成,但我对线程的了解很少。为此,我已经有一个重新加载方法。
我应该用什么来做到这一点(以及如何......)?
我的程序中有一个设置选项卡。您可以在此处设置的数据不仅可以从此面板更改。这就是为什么我想像每 5 秒一样重新加载这些数据。我认为这必须通过额外的线程来完成,但我对线程的了解很少。为此,我已经有一个重新加载方法。
我应该用什么来做到这一点(以及如何......)?
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(yourRunnable, 5, 5, SECONDS);
然后重新加载您的JPanel
in yourRunnable
(只需遵循 JavaDocs 中的示例)。
但我对线程的了解很少......
paintComponent(...)
,或者更好的是,在 BufferedImage 中然后显示在paintComponent(...)
.ScheduledExecutorService
根据 syb0rg 的答案(1+ 到 syb0rg 的答案),每 5 秒请求并获取新数据。repaint()
在您的数据更改后从 Swing 事件线程调用。如果使用 SwingWorker,进程/发布方法对可以帮助解决这个问题。您可以使用它将数据发布到 Swing 事件线程。您可以使用Timer
定期更新您的数据。