java中JFrame里面的getContentPane()是什么意思啊 书上说是窗口的内容面板 往窗口添加组件要通过面板才行
代码如下publicclassaaaextendsJFrame{……JLableb=newJLable("求解");getContentPane.add(b);……}但是...
代码如下
public class aaa extends JFrame{
……
JLable b = new JLable("求解");
getContentPane.add(b);
……
}
但是我现在不用内容面板 直接用add()还是可以向窗口添加组件 代码如下
public class aaa extends JFrame{
……
JLable b = new JLable("求解");
add(b);
……
} 展开
public class aaa extends JFrame{
……
JLable b = new JLable("求解");
getContentPane.add(b);
……
}
但是我现在不用内容面板 直接用add()还是可以向窗口添加组件 代码如下
public class aaa extends JFrame{
……
JLable b = new JLable("求解");
add(b);
……
} 展开
4个回答
展开全部
这个是因为在原来AWT的时代,对于Frame,必须使用getContentPane()然后再add,但是对于JFrame,如果只是调用add()方法,完全不用。
参见JFrame的Javadoc:
JFrame 类与 Frame 轻微不兼容。与其他所有 JFC/Swing 顶层容器一样,JFrame 包含一个 JRootPane 作为其唯一的子容器。根据规定,根窗格所提供的内容窗格应该包含 JFrame 所显示的所有非菜单组件。这不同于 AWT Frame。为了方便地使用 add 及其变体,已经重写了 remove 和 setLayout,以在必要时将其转发到 contentPane。这意味着可以编写:
frame.add(child);
子级将被添加到 contentPane。内容窗格始终是非 null 的。试图将其设置为 null 会导致 JFrame 抛出异常。默认的内容窗格上会设置有 BorderLayout 管理器。有关添加、移除和设置 JFrame 的 LayoutManager 的详细信息,请参阅 RootPaneContainer。
参见JFrame的Javadoc:
JFrame 类与 Frame 轻微不兼容。与其他所有 JFC/Swing 顶层容器一样,JFrame 包含一个 JRootPane 作为其唯一的子容器。根据规定,根窗格所提供的内容窗格应该包含 JFrame 所显示的所有非菜单组件。这不同于 AWT Frame。为了方便地使用 add 及其变体,已经重写了 remove 和 setLayout,以在必要时将其转发到 contentPane。这意味着可以编写:
frame.add(child);
子级将被添加到 contentPane。内容窗格始终是非 null 的。试图将其设置为 null 会导致 JFrame 抛出异常。默认的内容窗格上会设置有 BorderLayout 管理器。有关添加、移除和设置 JFrame 的 LayoutManager 的详细信息,请参阅 RootPaneContainer。
展开全部
你可以把JFrame看做是一个容器,JFrame的public Container getContentPane()返回的是一个Container。getContentPane()的实现时getRootPane().getContentPane();getRootPane()返回的是JRootPane,JRootPane的etContentPane()返回的是一个Container类。
JFrame的add方法是继承了Container方法。所以如果只是添加组件直接调用JFrame的add方法就可以了,没有必要调用getContentPane()再调用add方法。
JFrame的add方法是继承了Container方法。所以如果只是添加组件直接调用JFrame的add方法就可以了,没有必要调用getContentPane()再调用add方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
举这么个例子吧 : Frame呢就像是你家刚盖起来只有一个框架的楼房,只有钢筋和大体的结构 ; contentPane 呢就像是在那个框架的房子上修了墙体; 只有有了墙,你才会搬进去住吧,你才会把桌子,椅子,沙发等等的组件添加到里面去,呵呵 。 你可以这么记,其实java它就是这么设计的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这里应该可以解释你的问题
http://zhidao.baidu.com/question/59518588.html
http://zhidao.baidu.com/question/59518588.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询