1

我需要重构我的应用程序,因为我遇到了渲染问题,这可能是由于未正确使用事件调度线程造成的。为了做正确的事情,我尝试收集信息。我已经开始了这个关于 EDT 的线程: 何时在 Swing 中实现组件

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

假设我有以下结构:

[面板A [面板B [面板C]]]

什么会更高效(对 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());

当我更改组件的布局时,如何知道组件默认使用的布局以及可能发生的情况?

非常感谢你的帮助。

4

1 回答 1

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

  2. 一般来说,您不应该担心 UI 的性能。Swing 代码本身将“足够快”。仅当您从 UI 开始长时间运行的非 UI 任务时,性能/响应能力才会变得有趣。

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

于 2013-01-08T15:03:25.937 回答