2014-07-01 66 views
1

为什么它被认为是糟糕的编程形式,将组件摆放到框架上而不是面板中?当我直接将组件添加到框架上时,并没有真正出现任何问题,所以我想知道为什么我看过的所有学习视频甚至是GUI Window Builder都安装了面板组件的地方Java Swing组件放置

回答

1

当您添加使用JFrame#add(Component)将组件直接添加到框架,但实际上将其添加到框架的内容窗格中,该窗格是一个JPanel。

额外的面板允许更具体的细节,这就是为什么你可能会看到多个面板。我认为它会被折磨的主要原因是您应该分开维护“组件区域”(内容窗格)和框架(边框),以避免混淆。就我个人而言,我不在乎太多,更多的是个人喜好。

如前所述,JFrames与他们自己的内容窗格捆绑在一起,当使用JFrame#add(Component)添加组件时使用它。如果您真的感兴趣,请查看该方法的源代码。

另一个问题是使用paint方法。如果您重写JFrame的绘画方法,则可能会影响边框;可以使用一个单独的面板

+0

感谢您的直截了当的答案:) – Moyo2k

0

除了上述原因被避免的东西,另一个原因是,使用的JFrame的默认的contentPane,我们不能设置边框的components.Here an example