我知道,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/