我正在为我的项目创建软件,这是我到目前为止所做的。
我想做的是,我有一个使用net bean创建的jpane女巫,并且它在滚动窗格中(女巫也是使用netbeans添加的),动态地创建了一组jpanes,并将这些jpanes添加到我使用jpane创建的jpane中netbean.now滚动窗格不起作用..我无法找出原因,请帮助我

这就是我所做的

 int size=(int)jSpinner1.getValue();
    a=new JPanel [size];
 nameoftext=new JLabel[size];
 name=new JTextField[size];
 but =new JButton[size];
 iamge=new JLabel[size];



 jPanel1.removeAll();


 for(int x=0;x<size;x++)
 {

     a[x]=new JPanel(new FlowLayout());
    jPanel1.setLayout(new BoxLayout(jPanel1,BoxLayout.PAGE_AXIS));//this is the jpanel i created using netbeans
     jPanel1.add(a[x]);

     a[x].setVisible(true);


 }


 for(int x=0;x<size;x++)
 {

     nameoftext[x]=new JLabel("enter name");
     nameoftext[x].setText("enter name");
     name[x]=new JTextField();
     name[x].setName("name"+String.valueOf(x));
     name[x].setColumns(20);
     a[x].add(nameoftext[x]).setVisible(true);
     a[x].add(name[x]).setVisible(true);


 }


而且还有一件事,我必须拖动jframe的边框以使这些组件可见..如何在不拖动框架的情况下立即将它们添加到jframe

最佳答案

从可见的GUI添加(或删除)组件时,您需要revalidate()面板以调用布局管理器,以便可以为组件指定适当的大小(和位置),否则大小为(0,0)并且有没有油漆。

基本代码为:

panel.add(...);
panel.revalidate();
panel.repaint();

07-24 21:50