我開發了一個包含12個JPanel
的Swing GUI。最初,所有JPanel
的代碼都寫在主要的JFrame
類代碼中。結果,代碼變得太長(超過10,000行)。代碼是否應該由EDT(Event Dispatch Thread)執行或不執行?
現在我想重構代碼,將代碼拆分爲13個類(每個類12個類,其中一個爲JPanel
,另一個爲主類JFrame
),而不是一個類承載所有代碼。
但我有一些困惑是如下:
- 最初的12個
JPanel
小號上分別設置了一個「卡」JPanel
和JPanel
設置爲CardLayout
,以便只有1「卡」的佈局JPanel
其中12JPanel
顯示在一個基於點擊使用的按鈕。現在,當我從MainJForm
中分離出那些12JPanel
並將其中的每一個都實現爲它自己的類時,我想我需要在用戶單擊按鈕時首先實例化相應的JPanel
。那麼,在EDT(Event Dispath Thread)上執行這個繁重的任務會更好嗎?如果不是,那麼它是否會在SwingWorker
線程中創建一個JPanel的實例並傳遞一個ref。到EDT?