黑马程序员技术交流社区
标题:
JPanel p =(JPanel)this.getContentPane();疑问
[打印本页]
作者:
土突突
时间:
2014-6-15 16:51
标题:
JPanel p =(JPanel)this.getContentPane();疑问
本帖最后由 土突突 于 2014-6-20 18:00 编辑
看到了一个程序如下
class Demo extends JFrame
{
JButton cal =new JButton("计算");
JTextField txt1 =new JTextField(15);
JLabel lbl1 =new JLabel("+");
JTextField txt2 =new JTextField(15);
JLabel lbl2 =new JLabel("=");
JTextField txt3 =new JTextField(15);
public Demo(){
JPanel p1 =new JPanel();
p1.add(txt1);p1.add(lbl1);
p1.add(txt2);p1.add(lbl2);
p1.add(txt3);
JPanel p =(JPanel)this.getContentPane();////疑问来了后面就省略了...
getContentPane()是JFrame的方法。其返回的是Container对象。而Container是JPanel的父类啊。
怎么可以将是父类的Container强制转换为JPanel呢?
还有为什么不直接在JFrame里添加控件,反而先要添加进JPanel里中呢?不是很麻烦吗?
作者:
y200745
时间:
2014-6-15 17:18
不直接在JFrame里添加控件,反而先要添加进JPanel的原因是一个Jframe可以有多个Jpanel。你学习过布局管理器吗?一个框架中,可以在不同的面板上,设置不同的布局管理,这是UI设计的基础。如果只在Jframe上添加,自由度会大大降低。看看360的界面。每一部分的布局不一样的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2