关于JFrame和JPanel问题
1、add()和getContentPane()的区别?2、add(JPanel对象)、JPanel对象=(JPanel)getContent()、setContentP...
1、add()和getContentPane()的区别?
2、add(JPanel对象)、JPanel对象=(JPanel)getContent()、setContentPane(JPanel)三者有何不同? 展开
2、add(JPanel对象)、JPanel对象=(JPanel)getContent()、setContentPane(JPanel)三者有何不同? 展开
3个回答
展开全部
getContentPane()
这个方法要调用首先,你的类要是JFrame(或是继承JFrame的子类)
add()是任何JComponent都可以调用的,JPanel也可以,但是JFrame不可以,所以在JFrame里添加任何东西比如按键,就需要先getContentPane()(这东西返回的是Container,可以看做一个Container)
所以很多人写作getContentPane().add(new JButton(XXX))
Container cp = getContentPane();
cp.add(screen);
cp.add(input);
这是一段我自己的代码,cp指向获得的Container,
然后添加东西进去
add(XXX),XXX即为你要添加到JFrame,也就是你这个最大的窗口里的东西
而getContentPane()是不要写参数的,返回的即为你JFrame里的JPanel
JPanel对象=(JPanel)getContentPane(),是首先获得这个窗口(JFrame)的Container,然后用(JPanel)把它转换成JPanel, 你所写的对象就可以用 对象.add(XXX)来添加东西了
setContentPane(JPanel),事实上参数是Container,也就是替代原有的Container(也就是我们用getContentPane()得到的),而JPanel是Container的子类,可以作为参数。用这个方法,就要先建一个JPanel,然后用它替换原有的Container
add是添加,getContentPane()是获取内容窗体的意思,setContentPane()是设置窗体的意思,只要你理解了他们的意思,其实不难分辨
这个方法要调用首先,你的类要是JFrame(或是继承JFrame的子类)
add()是任何JComponent都可以调用的,JPanel也可以,但是JFrame不可以,所以在JFrame里添加任何东西比如按键,就需要先getContentPane()(这东西返回的是Container,可以看做一个Container)
所以很多人写作getContentPane().add(new JButton(XXX))
Container cp = getContentPane();
cp.add(screen);
cp.add(input);
这是一段我自己的代码,cp指向获得的Container,
然后添加东西进去
add(XXX),XXX即为你要添加到JFrame,也就是你这个最大的窗口里的东西
而getContentPane()是不要写参数的,返回的即为你JFrame里的JPanel
JPanel对象=(JPanel)getContentPane(),是首先获得这个窗口(JFrame)的Container,然后用(JPanel)把它转换成JPanel, 你所写的对象就可以用 对象.add(XXX)来添加东西了
setContentPane(JPanel),事实上参数是Container,也就是替代原有的Container(也就是我们用getContentPane()得到的),而JPanel是Container的子类,可以作为参数。用这个方法,就要先建一个JPanel,然后用它替换原有的Container
add是添加,getContentPane()是获取内容窗体的意思,setContentPane()是设置窗体的意思,只要你理解了他们的意思,其实不难分辨
展开全部
1.JFrame默认是有Pane的,所以,你直接add(某个组件)的话,就会将其加入到默认的Pane上去,getContentPane()的话是取得当前JFrame上的Pane,不过如果你setContentPane(某个Panel)的话,那么getContentPane()得到的就是你设置的Panel,如果没有设置,就是默认的Pane
2.add(JPanel对象)一般用于JPanel的嵌套,即在某个JPanel上放置多个JPanel,再在不同的JPanel上放置各自的组件,JPanel对象=(JPanel)getContentPane()是指取得当前的Pane并将其赋给一个对象,setContentPane(JPanel)就是指将当前的Pane设置为你想设置的
这是我最近刚做完课程设计的总结,如有不对,还请见谅,我也是初学。
2.add(JPanel对象)一般用于JPanel的嵌套,即在某个JPanel上放置多个JPanel,再在不同的JPanel上放置各自的组件,JPanel对象=(JPanel)getContentPane()是指取得当前的Pane并将其赋给一个对象,setContentPane(JPanel)就是指将当前的Pane设置为你想设置的
这是我最近刚做完课程设计的总结,如有不对,还请见谅,我也是初学。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
将setVisible的语句放置最后执行,原则上应该先将东西准备好,再进行显示。
楼主的代码看起来很不规范,建议多看看书上的例子~~
楼主的代码看起来很不规范,建议多看看书上的例子~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询