日期:2014-05-20  浏览次数:20864 次

JPanel的add方法的问题,疑惑中
JPanel有一个继承的方法add
add
public void add(Component comp,
  Object constraints)将指定的组件添加到此容器的尾部。同时通知布局管理器使用指定的 constraints 对象将组件添加到此容器的布局中。对于 addImpl(java.awt.Component, java.lang.Object, int) 来说,这是一种便捷的方法。 
注:如果已经将某个组件添加到显示的容器中,则必须在此容器上调用 validate,以显示新的组件。如果添加多个组件,那么可以在添加所有组件之后,通过只调用一次 validate 来提高效率。 


参数:
comp - 要添加的组件
constraints - 表示此组件的布局约束的对象
从以下版本开始: 
JDK1.1 
另请参见:
addImpl(java.awt.Component, java.lang.Object, int), validate(), JComponent.revalidate(), LayoutManager


这个应该怎样理解?
如果我添加的constraints是String类型的怎样理解?

我搜到一个一样问题好像没有完全解决啊

http://topic.csdn.net/u/20081015/12/fa35f21f-8e02-46b5-93d1-45ac57aac846.html

------解决方案--------------------
先不看addImpl方法 估计你肯定用过 add(cc,BorderLayout.CENTER) 或add(cc,"center")吧 
当然你的panel此时谁知的layout代码为setLayout(new BorderLayout());
borderlayout就是一个layoutmanager
gridbag的同样也是一样理解 并没有所谓的add(Component c,String ss)方法 如果有这个方法至少borderlayout的约束就失效了

------解决方案--------------------
其实你看的太复杂了.实际使用时使用JPanel默認的布局管理器FlowLayout(如果换成别的布局管理器也行),再调用JPanel的add(Component c)方法即可.
不用太去关心那个String参数.