永发信息网

java中JFrame里面的getContentPane()是什么意思啊 书上说是窗口的内容面板 往窗口添加组件要通过面板才行

答案:4  悬赏:50  手机版
解决时间 2021-02-15 16:53
java中JFrame里面的getContentPane()是什么意思啊 书上说是窗口的内容面板 往窗口添加组件要通过面板才行
最佳答案
你可以把JFrame看做是一个容器,JFrame的public Container getContentPane()返回的是一个Container。getContentPane()的实现时getRootPane().getContentPane();getRootPane()返回的是JRootPane,JRootPane的etContentPane()返回的是一个Container类。
  JFrame的add方法是继承了Container方法。所以如果只是添加组件直接调用JFrame的add方法就可以了,没有必要调用getContentPane()再调用add方法。
全部回答
举这么个例子吧 : Frame呢就像是你家刚盖起来只有一个框架的楼房,只有钢筋和大体的结构 ; contentPane 呢就像是在那个框架的房子上修了墙体; 只有有了墙,你才会搬进去住吧,你才会把桌子,椅子,沙发等等的组件添加到里面去,呵呵 。 你可以这么记,其实java它就是这么设计的
这个是因为在原来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。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
产后身痛风寒证的主要证候是A.肢体关节疼痛,
求韩剧秘密花园百度云资源 720p或是1080p的
求杨涵淇七分钟视频
说明举办庆典活动的注意事项。
在数列中a 1=二分之一,Sn =n的平方乘an ,
海口托运站地址好找么,我有些事要过去,
四川电影电视学院舞蹈表演读几年可以专升本
高麦地地址在哪,我要去那里办事
2016全国财经大学大学录取分数排行榜出炉
怎么初始化固态硬盘
伊人日化我想知道这个在什么地方
有没有中国历史里不守诚信而受到惩罚的事例?
黑色沙漠boss套怎么获得
水浒传中被张清用石子打了的梁山好汉有哪些?
崖后村我想知道这个在什么地方
推荐资讯
视力不好.针灸有用么
4482微信里是代表着什么含义
西安村在哪里啊,我有事要去这个地方
【闰年闰月】谁能解释一下闰年与闰月要简单易
求助贴:明智明至的充电器和能研的充电器比
单选题________tellingheragainsinceshewon
日语大神们 ホブ加工 是什么意思啊?用网络翻
田仓まひろ有哪些作品
垫层底面处径深度修正后的地基承载力特征值为
女主角有病的悲情小说5个以上
潜江市潜江联信手机旗舰店我想知道这个在什么
想要一张古风图,画面最好男子吹笛女子聆听。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?