Java Swing组件放置

时间:2014-07-01 19:16:12

标签: java swing jframe jpanel

为什么将组件直接摆放到框架而不是面板中会被认为是错误的编程形式?当我直接向框架添加组件时,似乎没有任何问题,所以我想知道为什么我看到的所有学习视频,甚至我安装的GUI Window Builder都将组件放在面板中

2 个答案:

答案 0 :(得分:1)

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

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

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

另一个问题是使用paint方法。如果覆盖JFrame的paint方法,则可能会影响边框;使用单独的面板可以避免的事情

答案 1 :(得分:0)

除了上述原因,另一个原因是使用JFrame的默认ContentPane,我们无法为组件设置边框。这里 an example