在Swing中添加组件的性能更高的顺序是什么?

时间:2013-01-08 14:42:35

标签: java swing components add

我需要重构我的应用程序,因为我遇到了渲染问题,这可能是因为没有正确使用事件调度线程。为了做正确的事,我尝试收集信息。我已经启动了这个关于EDT的帖子: When exactly are components realized in Swing

现在我想了解更多关于嵌套Panel的最佳方法。

假设我有以下结构:

[PanelA [PanelB [PanelC]]]

什么会更高效(更少内部调用invalidate())

订单1(第一个内部组件然后是外部):

PanelB.add(PanelC);
PanelA.add(PanelB);

订单2(第一个外部组件然后是内部):

PanelA.add(PanelB);
PanelB.add(PanelC);

如果某人还有更多关于如何获得最高性能UI的信息/链接/提示等,我将非常感激。大多数教程只是解释基础知识。

相关问题: 由于所有JComponents都是容器,我考虑通过添加组件来保存一些JPanel,让我们说JButton。这是一个好习惯:

JButton b=new JButton();
b.setLayout(new BorderLayout(),BorderLayout.Right);
b.add(new MyComponent());

当我更改Component的布局时,我怎么知道Component默认使用哪个布局以及可能发生什么?

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

  1. 您不必担心添加组件的顺序,用户不会注意到差异。

  2. 您通常不必担心UI的性能。 Swing代码本身就足够“快”。只有当您从UI开始长时间运行的非UI任务时,性能/响应才会变得有趣。

  3. 如果向按钮添加面板,则会使用户感到困惑。您可以检查组件的源代码以查看其布局管理器(但这很少需要)