我正在为我的项目创建软件,这是我到目前为止所做的。
我想做的是,我有一个使用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();