有个主界面MainFrame extends JFrame
有个专门用来画图的JComponent XComponent(通过override paintComponent实现)
把XComponent的一个实例放到MainFrame上实现预期效果,但是XComponent不会自动repaint,画面会出问题,比如最小化再打开画的东西就没了
我试过在MainFrame override repaint方法来调用XCOmponent的repaint,结果无效,请各位给点意见

解决方案 »

  1.   

    记得好像是这样的,好久没用了,不太敢确定。仅供参考在paint函数里面需要将你已画的东西在画出来,
    因为画上去的东西没有自动保存,所以最小化,再还原后会丢失,或者比如将画出部分用另一窗口遮盖一部分,然后移开,被遮盖的部分也会丢失。
    应该要把画出的东西保存,然后再paint函数里面检测所有画出的东西重画。
      

  2.   

    应该要把画出的东西保存,然后再paint函数里面检测所有画出的东西重画。
    -------------
    具体怎么做,有没有代码参考
      

  3.   

    这个要写代码就可大可小了,
    简单的说就是保存你画图时所作的操作,在repaint的时候重现这个操作。
    比如你在画布上画了一条直线,那么你就应该保存着条直线的起点和终点,
    然后在repaint的时候在这个起点和终点之间在画一条直线。
      

  4.   

    楼上的,repaint是直接调用paint,难道还要override repaint方法?恐怕不行吧
    ps:楼上的有实现过还是自己想当然?