有个主界面MainFrame extends JFrame
有个专门用来画图的JComponent XComponent(通过override paintComponent实现)
把XComponent的一个实例放到MainFrame上实现预期效果,但是XComponent不会自动repaint,画面会出问题,比如最小化再打开画的东西就没了
我试过在MainFrame override repaint方法来调用XCOmponent的repaint,结果无效,请各位给点意见
有个专门用来画图的JComponent XComponent(通过override paintComponent实现)
把XComponent的一个实例放到MainFrame上实现预期效果,但是XComponent不会自动repaint,画面会出问题,比如最小化再打开画的东西就没了
我试过在MainFrame override repaint方法来调用XCOmponent的repaint,结果无效,请各位给点意见
因为画上去的东西没有自动保存,所以最小化,再还原后会丢失,或者比如将画出部分用另一窗口遮盖一部分,然后移开,被遮盖的部分也会丢失。
应该要把画出的东西保存,然后再paint函数里面检测所有画出的东西重画。
-------------
具体怎么做,有没有代码参考
简单的说就是保存你画图时所作的操作,在repaint的时候重现这个操作。
比如你在画布上画了一条直线,那么你就应该保存着条直线的起点和终点,
然后在repaint的时候在这个起点和终点之间在画一条直线。
ps:楼上的有实现过还是自己想当然?