黑马程序员技术交流社区

标题: java.awt.Container的这两个add方法有什么区别? [打印本页]

作者: 胡斌    时间: 2012-11-8 14:29
标题: java.awt.Container的这两个add方法有什么区别?
public Component add(String name,Component comp)和

public void add(Component comp,Object constraints)

除了返回类型不同,还有什么区别?

例如:JPanel p = new JPanel();
           p.add("A"+i,new JButton("Center"));是什么意思?



作者: 胡斌    时间: 2012-11-8 15:22
匿名者 发表于 2012-11-8 15:03
形参也不同呀。

我就在这个地方纠结,不知道啥意思》?
看我前面的帖子:CardLayout布局小问题,跪求答案???
这个有详细的程序?而且运行正确。
作者: 奋斗的青春    时间: 2012-11-8 15:54
自己理解下 。

java.awt.container.png (79.66 KB, 下载次数: 31)

java.awt.container.png

作者: 杨志男    时间: 2012-11-8 16:08
我先解释第二个add()方法吧,它的功能是将某个组件按某种约束条件添加到容器中,而这个约束条件就是组件在容器布局中的位置,如BorderLayout.CENTER
至于第一个方法,我是这么理解的,将某名称的组件添加到容器中,不过这个方法已经过时了,可能因为那时候还没有这么多布局方式吧,现在已经被第二个方法替代了
作者: 胡斌    时间: 2012-11-8 16:41
吴愿涛 发表于 2012-11-8 15:54
自己理解下 。

已经看过了,看不明白!
for(int i=0;i<10;i++)
                {
                        mp=new myPanel(i+1);
                        /**
                         *  Component        add(String name, Component comp)
                          将指定组件添加到此容器中。
                          public Component add(String name,Component comp)和
                                public void add(Component comp,Object constraints)
                                除了返回类型不同,还有什么区别?(其实这个返回类型根本用不到,
                                用这个方法主要是用这个方法的副作用,而不需要它返回的对象。)
                                比如,cp是一个Container并且jp.setLayout(new BorderLayout());
                                我写
                                cp.add(BorderLayout.CENTER, new JButton("Center"));和
                                cp.add(new JButton("Center"),BorderLayout.CENTER);
                                有区别吗?
                                */
                       
                        p.add("A"+i,mp);//这里A是什么意思?还有"A"+i 啥意思?就是这块不明白?
                }




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2