解决方案 »

  1.   

    在你的监听方法内
    myFrame.add(pl,BorderLayout.CENTER);//之后添加下面一句,记得要刷新面板哦
    myFrame.validate();
      

  2.   

    行不通啊,我在add后调用myFrame的getComponentsCount方法,发现根本没有添加上面板
      

  3.   


    加入validate后确实可以了。非常感谢!但还是有两个疑问:
    一是为什么我在监听方法内调用myFrame.repaint()方法就没有效果,这个方法和validate不一样吗
    二是为什么在监听方法外加入面板就不用调用validate方法呢
      

  4.   

    public void validate()
    验证此容器及其所有子组件。
    使用 validate 方法会使容器再次布置其子组件。已经布置容器后,在修改此容器的子组件的时候(在容器中添加或移除组件,或者更改与布局相关的信息),应该调用上述方法。 public void repaint()
    重绘此组件。
    如果此组件是轻量组件,则此方法会尽快调用此组件的 paint 方法。否则此方法会尽快调用此组件的 update 方法。【转】