java - 为什么 JFrame 最初需要 getContentPane() 来添加组件

标签 java swing jframe

我知道,as of Java 1.5 ,可以像这样将组件添加到 JFrame:

myFrame.add(myButton);

代替:

myFrame.getContentPane().add(myButton);

为什么情况并非总是如此?

最佳答案

JFrame API 中所述,两者都做同样的事情:向 contentPane 添加一个组件。就在最近(也许是 Java 1.5?)Swing 添加了语法糖/便利方法以允许您直接在 JFrame(或任何其他 Swing 顶级容器)上进行此调用,但您仍在向 contentPane 添加内容。 remove(...)setLayout(...) 相同 如果您尝试通过 myJFrame 设置 JFrame 的背景颜色,这将变得非常清楚.setBackground(Color.green); 并且没有任何反应。正是出于这个原因,我对这种变化不太满意。那也是因为我一定是个老脾气的人。

关于java - 为什么 JFrame 最初需要 getContentPane() 来添加组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9169874/

相关文章:

java - 在与我的游戏互动之前,我必须点击我的窗口

java - 如何在按钮上获得鼠标悬停/弹出效果?

Java,为什么我的图形超出了它们应该在的框架/范围?

java - Form.java 扩展了 JFrame

java - 如何查找另一个标签之前最后一次出现的 XML 标签

java - 从 Java 创建 OGG 文件

java - 当列移动时,如何同步两个 JTable 和 JTableHeader?

java - 如何动态启用或禁用 Java Swing 程序的任务栏图标

java - JComboBox:选择后出现错误的形式

java - 聚合器模式,SOA(SplitJoin OSB)