在程序启动时创建所有JPanel,而不是仅在需要时创建它们

时间:2012-06-11 07:21:05

标签: java swing jpanel loading

作为一般规则,具有多个部分的程序是否应该在启动时创建所有内容,还是应该等到实际需要时创建每个部分?

我的具体案例是Java kiosk风格的应用程序,它有多个不同的部分。每个部分都是一个不同的JPanel(具有不同的按钮/ JTables / JLabel /等),可执行特定任务。这是一个尚未完成的未完成的项目,但是我将完成它并且我正在查看代码并试图重构我认为我应该做的事情。

到目前为止,该程序在启动时创建了每个JPanel,因此每当用户点击其中一个更改了哪个JPanel的按钮时,它就会立即加载,因为它已经创建了。到目前为止,我认为这在性能方面并不重要,但我想知道在这种情况下标准做法是什么。

3 个答案:

答案 0 :(得分:2)

我会 在启动时加载所有内容,因为它可能会使启动变慢并且还会加载一些不需要的面板。例如,您有4个面板加载了联系人,关于,图片和订阅源。假设您在启动时加载所有4,如果用户只访问其中的2个然后关闭应用程序,该怎么办?有时用户可能只想看到一个面板,但他必须等待所有面板在启动时加载。因此我建议在需要时加载面板。仅在框架上加载主数据,然后当用户第一次单击按钮加载面板时,显示进度条直到加载该面板,并且从下次单击按钮时只显示面板而不等待它已经通过第一次点击加载。

如果您的应用程序从互联网上获取数据,那么在启动时加载所有数据也会产生额外的带宽和数据费用。

答案 1 :(得分:1)

这取决于你的项目需求。

如果 响应时间 对最终用户很重要,那么您的方法是正确的。

否则按需创建jpanel

答案 2 :(得分:1)

我认为这很大程度上取决于创建JPanel的成本。如果它包含一个JTable,其中包含大量信息,例如,通过网络从MySQL服务器接收,则创建JPanel的成本非常高。

在这种情况下,我只会在需要时创建它。也许在程序运行时永远不需要JPanel,那么为什么要花费所有时间和资源来创建呢?