繁体   English   中英

重用Swing组件,这些组件很难初始化

[英]Reusing Swing components which are time-consuming to initialize

如果我的应用程序中有一个庞大的Swing组件需要很长时间来初始化,并且想要同时在我的GUI中的不同位置显示该组件,我最好如何做到这一点?

GUI用户必须能够与组件的不同副本进行交互(例如,它们可以用作镜像)。

假设有人可能想要动态显示该组件的副本,具体取决于GUI用户的输入(也就是说,我们不希望预先加载同一组件的许多副本)。

您需要更改组件以像时尚模型一样访问数据。 每个组件都需要指向同一个模型,该模型将为数据提供服务并执行一次密集型任务而不是多次。

此外,初始化正在减慢GUI,然后它听起来像你需要一个启动画面或进度条,任务移出EDT。

有没有什么方法可以把重型初始化代码拉出来,可能是'...工厂'类?

我将创建一个组件的一个实例(比如说HeavyComponent)和一个自定义类,例如JPanel和引用组件。 我们把它命名为MyContainer。 在MyContainer的paintComponent()上,我将原始组件绘制到BufferedImage或使用heavyComponentReference.paint(g)。 然后在MyContainer上点击我将交换组件替换面板与HeavyComponent的实例并放置在HeavyComponent新实例MyContainer的旧位置。

同时在我的GUI中的不同位置显示此组件...无需创建同一组件的新副本...用户必须能够与不同的副本进行交互

没门。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM