繁体   English   中英

java jframe.add中的JFrame(按钮);

[英]JFrame in java jframe.add(button);

我必须写:jframe.getContentPane()。add(button);

但我发现它只在我写的时候也有效

jframe.add(按钮);

这两种方法有什么区别? 是否有利于编写JFrame.getContentPane()。add(button);

这是一个品味问题。 我总是使用getContentPane()。add(..),因为我认为它更容易阅读/知道实际发生了什么

试试这个........

在Java 1.5到来之前 ,jframe.getContentPane()。add(button)被使用.....这就是合法的做法....

但是从Java 1.5开始,包括myframe.add(按钮)......也是合法的方法之一。就像使用Classname访问静态变量一样,这是合法的方式。 ..但仍然可以使用类实例访问静态变量...

所以你应该知道像JButtonJTextArea等元素应该添加到Container和你的方法:

getContentPane()

返回此框架的Container对象。 所以两种方法都相同,但你应该使用第二种方法。

如果您将拥有包含许多元素的大型应用程序 ,则第一种方法的可读性较差,通常建议使用第二种方法。

差异不是:

Jframe.add() - 将指定的组件追加到此容器的末尾。 这是Container.addImpl的便捷方法。

JFrame类javadoc对此非常清楚

JFrame类与Frame略有不兼容。 与所有其他JFC / Swing顶级容器一样,JFrame包含JRootPane作为其唯一子级。 根窗格提供的内容窗格通常应包含JFrame显示的所有非菜单组件。 这与AWT Frame案例不同。 作为一个commiance add及其变体,remove和setLayout已被覆盖,以便在必要时转发到contentPane。 这意味着你可以写:

   frame.add(child);

并且孩子将被添加到contentPane。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM