【发布时间】:2014-07-01 19:16:12
【问题描述】:
为什么将组件直接放置在框架上而不是面板上会被认为是不好的编程形式?当我将组件直接添加到框架时,似乎并没有任何问题,所以我想知道为什么我看过的所有学习视频,甚至我安装的 GUI Window Builder 都将组件放置在面板中
【问题讨论】:
为什么将组件直接放置在框架上而不是面板上会被认为是不好的编程形式?当我将组件直接添加到框架时,似乎并没有任何问题,所以我想知道为什么我看过的所有学习视频,甚至我安装的 GUI Window Builder 都将组件放置在面板中
【问题讨论】:
当您使用JFrame#add(Component) 将组件直接添加到框架时,实际上是将其添加到框架的内容窗格中,即JPanel。
额外的面板允许更具体的细节,这就是您可能会看到多个面板的原因。我认为它不受欢迎的主要原因是您应该分别维护“组件区域”(内容窗格)和框架(使边界混乱的东西)以避免混淆。就个人而言,我不太在意,更多的是个人喜好。
如前所述,JFrame 捆绑了自己的内容窗格,在使用JFrame#add(Component) 添加组件时使用。如果您真的感兴趣,请查看该方法的源代码。
另一个问题是使用paint方法。如果覆盖 JFrame 的绘制方法,则可能会影响边框;使用单独的面板可以避免的事情
【讨论】:
除了上面的原因,还有一个原因是使用JFrame默认的ContentPane,我们无法为组件设置边框。这里 an example
【讨论】: