repaint()
方法其实是调用
paint()如果没有paint则调用
paintComponent。pack和setSize不能够同时使用
组件setSize一般用于布局为空的情况

解决方案 »

  1.   

    在add的后面调用: 
    cp.validate();
     cp.repaint();
      

  2.   

    看了一下关于validate90的介绍,是用来重新布置组件的子组件的,
    但用pack()好象也能完成这样的功能,是不是
    pack()和validate()+ repaint()的作用是相同的呢??
      

  3.   

    pack() == setSize(getPreferredSize());validate();public void run() {
          cp.add(new JButton("Middle Right"), 2);
          f.pack();
    }public void run() {
          cp.add(new JButton("Middle Right"), 2);
          f.setSize(f.getPreferredSize());
          f.validate();
    }