问题描述
我的想法是点击“添加”按钮,然后将一个按钮添加到JPanel中,我调用了repaint()方法,但是没反应。可是我将窗口托大或托小,就能显示出来了。能帮我修改下吗,谢谢您了!!!importjava.awt.Dimension;importjava.awt.FlowLayout;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JPanel;publicclassRepaintTestextendsJFrameimplementsActionListener{privateJPaneljpanel=newJPanel();privateJButtonjbAdd=newJButton("添加");privateJButtonjb=newJButton("按钮");publicstaticvoidmain(String[]args){newRepaintTest();}publicRepaintTest(){jbAdd.setPreferredSize(newDimension(60,30));jpanel.setPreferredSize(newDimension(180,200));jbAdd.addActionListener(this);this.setLayout(newFlowLayout());this.add(jbAdd);this.add(jpanel);this.setBounds(400,150,200,300);this.setVisible(true);//this.setResizable(false);}publicvoidactionPerformed(ActionEvente){jpanel.add(jb);repaint();}}
解决方案
解决方案二:
revalidate();
解决方案三:
publicvoidactionPerformed(ActionEvente){jpanel.add(jb);repaint();}--------------》publicvoidactionPerformed(ActionEvente){jpanel.add(jb);jpanel。updateUI();}
解决方案四:
publicvoidactionPerformed(ActionEvente){jpanel.add(jb);jpanel.updateUI();}
解决方案五:
顶起,3楼正解!!!