当前位置:  技术问答>unix/linux知识 iis7站长之家

急急急!!!100分请教为什么面板中动态添加组件后无法自动更新?

    来源: 互联网  发布时间:2017-03-29

    本文导语:  RT,点击添加按钮后,需要在Panel中添加一个组件,但是要通过改变窗体的大小,才能显示出添加的组件。我在事件处理中添加了repaint也不行。 代码如下: class MainPanel extends Panel implements ActionListener { ScrollPane scrP...

RT,点击添加按钮后,需要在Panel中添加一个组件,但是要通过改变窗体的大小,才能显示出添加的组件。我在事件处理中添加了repaint也不行。
代码如下:
class MainPanel extends Panel implements ActionListener
{
ScrollPane scrPanel1;
RowPanelSet rowPanSet;
Panel tempPan;
LabelsPanel labPan;
DetailPanel detPan;
MainPanel()
{
setLayout(new BorderLayout());
setSize(640,200);
scrPanel1=new ScrollPane(ScrollPane.SCROLLBARS_ALWAYS);
rowPanSet=new RowPanelSet();
tempPan=new Panel();
labPan=new LabelsPanel();
detPan=new DetailPanel();
tempPan.setLayout(null);
tempPan.setSize(540,rowPanSet.getComponentCount()*25);
rowPanSet.setBounds(0,0,540,rowPanSet.getComponentCount()*25);
tempPan.add(rowPanSet);
scrPanel1.add(tempPan);
scrPanel1.setSize(540,getSize().height-50);
labPan.setBounds(0,0,540,20);
scrPanel1.setBounds(0,20,540,getSize().height-50);
detPan.setBounds(0,getSize().height-40,540,30);
add(labPan,"North");
add(scrPanel1,"Center");
add(detPan,"South");
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==MainFrame.button1)
{
int i;
RowPanel pan1;
pan1=new RowPanel();
i=rowPanSet.getComponentCount();
rowPanSet.setLayout(new GridLayout(i+1,1));
rowPanSet.add(pan1);
tempPan.setSize(540,rowPanSet.getComponentCount()*25);
rowPanSet.setBounds(0,0,540,rowPanSet.getComponentCount()*25);
MainFrame.button1.setLabel(String.valueOf(rowPanSet.getComponents()[rowPanSet.getComponentCount()-1].getAlignmentX()));
}
}
}
class MainFrame extends Frame
{
static Button button1;
MainPanel mainPan;
MainFrame()
{

super("销售货物单");
button1=new Button("Add");
mainPan=new MainPanel();
setVisible(true);
setSize(640,480);
setLayout(new BorderLayout());
mainPan.setBounds(0,0,240,getSize().height-20);
button1.setBounds(240,getSize().height-20,60,20);
add(mainPan,"Center");
add(button1,"South");
button1.addActionListener(mainPan);
this.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent w)
{
setVisible(false);
System.exit(0);
}
});
this.pack();
}
}

public class Trans
{
public static void main(String args[])
{
MainFrame mF=new MainFrame();
}
}

|
validate()

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3