我需要重构我的应用程序,因为我遇到了渲染问题,这可能是因为没有正确使用事件调度线程。为了做正确的事,我尝试收集信息。我已经启动了这个关于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默认使用哪个布局以及可能发生什么?
非常感谢你的帮助。
答案 0 :(得分:2)
您不必担心添加组件的顺序,用户不会注意到差异。
您通常不必担心UI的性能。 Swing代码本身就足够“快”。只有当您从UI开始长时间运行的非UI任务时,性能/响应才会变得有趣。
如果向按钮添加面板,则会使用户感到困惑。您可以检查组件的源代码以查看其布局管理器(但这很少需要)