2012-09-05 74 views
1

我听说把同一级别的组件放在另一个同级别组件上是不好的做法。正确的秋千设计

我说的是在这种情况下JPanels。我目前将所有内容分成单独的JPanel,每个JPanel都有自己的布局,然后将它们添加到主内容窗格(JPanel)中。我觉得这种方式比配置适用于我所有可能遍布各地的组件的布局要容易得多。我的逻辑是否有缺陷?

+2

我不明白你的第一个陈述,但你的第二个看起来很好。更好地隔离自己的容器内的复杂布局 - 恕我直言 – MadProgrammer

+2

@MadProgrammer基本上,有多个JPanel通过父JPanel是错误的吗?即使它没有错,是否有更好的解决方案,我可以使用? – LanguagesNamedAfterCofee

+2

@Languages:不,将多个JPanel添加到父JPanel并没有错。我们一直这样做。我仍然不确定是什么引发了这个问题,或者你到底在哪里发布这个问题。请提供一些背景资料。 –

回答

2

有没有错具有面板的内部面板。但是,如果你正在做很多事情,你可能要考虑一个布局管理器(我最喜欢的是MiGLayout),它支持相当复杂的控件排列,而不需要使用大量的嵌套面板。

在一天结束的时候,使用的是更容易为你保持你的代码组成。如果您拥有相互独立的控件分组,那么将它们放在单独的面板中是很好的设计 - 它允许您将该面板分开(用于测试,甚至用于UI中的创意窗口)。如果这些控件集合彼此内在联系在一起,请考虑使用高级布局管理器的单个面板。

在某些情况下,就必须的(典型的例子是一个面板与列表和用于所选择的项目在列表中的细节视图另一面板)两个面板之间的结合量小。在这种情况下,我通常使用两个单独的面板和两个单独的演示模型,然后将当前选定的项目绑定到检查器面板的父级。但是,如果您发现您正在使用多个面板的值来验证,数据存储等等,那么您可能会将事情划分为太多面板。

我已经做了很多这多年来,我已经看中的位置就是我撰写UI一起潜在的演示模型,背视图逻辑线。我很少让UI的布局驱动我使用了多少个面板等等 - MigLayout(并且我确信还有其他的)甚至可以使得复杂的UI布局非常简单,并且设计类更好视图和模型的方式使代码更易于测试和维护。