大家可以不用关心我的程序是干什么。只是需要这样一个过程。我定义了一个JPanel panel1 ,这个panel1上有两个按钮和一个文本框。就是我选择了几个人后就会向另外一个JPanel 也就是panel2上add几个panel1.这个过程我是做到了的。现在的问题是我每次add一个panel1,都是接在前一个panel1后。我现在需要每次add一个新的panel1都能在下一行加上,就是说一行一个panel1.请问代码该怎么写呢?
另外panel2我是放在了scrollpanel中,JScrollPane   sp   =   new   JScrollPane(panel2);请问我该怎么实现一行添加一个panel1了? 

解决方案 »

  1.   


    public class Box extends JComponentimplements Accessible使用 BoxLayout 对象作为其布局管理器的一个轻量级容器。Box 提供几个对使用 BoxLayout 的容器(甚至非 Box 容器)有用的类方法。 Box 类可以创建几种影响布局的不可见组件:glue、struts 和 rigid 区域。如果 Box 包含的所有组件都有一个固定大小,可以使用 glue 组件(由 createGlue 返回)来控制组件的位置。如果想让两个组件之间有一个固定的空间量,可以尝试使用 strut(createHorizontalStrut 或 createVerticalStrut)。如果需要一个总是占用相同空间量的不可见组件,可以通过调用 createRigidArea 获得。 
      

  2.   


    你的panel1使用的是什么布局管理器?
    一种是楼上所说的box,设置为纵向的,然后添加。
    还有一种,使用gridLayout。panel1.setLayout(new GridLayout(0,1));
    这个方法将布局管理器设置为只有一列。当你添加的时候,只占一列。行数要设置为0,不然布局管理器会优先考虑行,而放弃列,只有当行设置为0的时候才会以列数为标准进行排列。