Java-向JFrame添加组件
问题内容:
我已经看到了几种有神论的方法,它们似乎都起作用,但是我只是想知道一种方法是否比另一种更好。
例如,一个JFrame
叫myFrame
你可以这样做:
myFrame.add(new JButton("OK"));
您还可以执行以下操作:
Container c = myFrame.getContentPane();
c.add(new JButton("OK"));
这些“正确”之一吗?
问题答案:
来自类javadoc的文字副本 JFrame
JFrame类与Frame略有不兼容。像所有其他JFC /
Swing顶级容器一样,JFrame包含JRootPane作为其唯一的子级。根窗格提供的内容窗格通常应包含JFrame显示的所有非菜单组件。这与AWT框架情况不同。为方便起见,add和setLayout被覆盖,可以根据需要转发到contentPane。这意味着您可以编写:
frame.add(child);
并将该子级添加到contentPane中。内容窗格将始终为非空。尝试将其设置为null将导致JFrame引发异常。默认的内容窗格将设置有BorderLayout管理器。有关添加,删除和设置JFrame的LayoutManager的详细信息,请参考RootPaneContainer。
所以两者都是等效的,而且都是正确的