對於我當前的應用程序,我正在努力識別我的應用程序中的Swing線程。與Swing線程我的意思是:識別用於顯示Java中頻繁數據輸入的Swing線程
- 初始線程
- 事件調度線程
- 工作線程
我的應用程序:
這是爲了顯示數據- 簡單的用戶界面在插座上收到
- 數據被描述爲b ÿ許多模型類
- 所接收的數據是被解析XML,模型對象被實例化
- 用戶界面應該顯示所接收的數據
- 這些數據被非常頻繁地更新,這意味着XML消息是簡短,但其中有很多
- 把它放到上下文中:我正在編寫一個Java分析器。
我已經閱讀了Swing教程到目前爲止,所以這裏是我的猜測和疑問:
後臺任務是服務器插槽,分別後臺任務是對其中應用接收打開的連接數數據。
任務沒有最終的結果,所以我想應該
SwingWorker<T,S>
只定義泛型類型爲中期業績?對於每個解析的XML,我都會致電publish
。但是,如何區分我收到的數據?也許XML數據只包含足夠的信息來構建class A
或者數據包含足夠的信息來構建class A
和class B
,但是如何將兩者都包裝到一個臨時結果中?一個包裝類?process()
方法調用更改以使其對用戶界面可見,不是嗎?我不明白這是如何工作的。我在哪裏啓動我的任務?它是爲了調用JFrame
構造函數中的SwingWorker.execute()
?XML閱讀器應該是任務還是每個處理傳入連接的線程都是任務?
非常好,這看起來像我正在尋找的解決方案。不過,我看到invokeLater和使用EventBus沒有區別。 – 2011-04-08 11:02:54
使用EventBus避免了必須聲明並傳遞內聯Runnable,唯一的功能是調用UI上的更新方法。在我看來,設計更清潔一些。 – jfpoilpret 2011-04-08 11:40:01
是由Java Swing提供的EventBus接口嗎?我找不到任何文檔,或者它是可以用於我的事業的架構嗎? – 2011-04-08 12:36:54