我开发了一个包含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?