我的程序中有一個設置選項卡。您可以在此設置的數據不僅可以在此面板中更改。這就是爲什麼我想每5秒重新加載一次數據。我認爲這必須通過一個額外的線程來完成,但我對線程的瞭解很少。我已經有了一個重載方法來達到這個目的。每隔X秒刷新JPanel(帶線程)
我應該用什麼來做到這一點(以及如何...)?
我的程序中有一個設置選項卡。您可以在此設置的數據不僅可以在此面板中更改。這就是爲什麼我想每5秒重新加載一次數據。我認爲這必須通過一個額外的線程來完成,但我對線程的瞭解很少。我已經有了一個重載方法來達到這個目的。每隔X秒刷新JPanel(帶線程)
我應該用什麼來做到這一點(以及如何...)?
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.scheduleAtFixedRate(yourRunnable, 5, 5, SECONDS);
然後重新裝入您的JPanel
在yourRunnable
(只需按照從JavaDoc中的示例)。
您可以使用Timer
定期更新您的數據。
但我對主題的知識是最小的...
paintComponent(...)
方法中繪製GUI的圖形表示,或者更好地在BufferedImage中繪製數據,然後顯示在paintComponent(...)
的內部。ScheduledExecutorService
,該回答每5秒請求並獲取新數據。repaint()
。如果使用SwingWorker,則過程/發佈方法對可以幫助解決這個問題。你可以用這個將數據發佈到Swing事件線程。
你拼寫錯了我的名字:P + 1的所有有用的東西,我沒有提到。 – syb0rg 2013-04-28 20:04:03
@ syb0rg:哎呀,我的壞! – 2013-04-28 20:04:38
+1用於簡要說明5個步驟。 – 2013-04-28 21:04:21