写下伪代码了,
class a{

解决方案 »

  1.   

    写下伪代码了,
    class a{
           新建JPanel jpanel1;
           Graphics g;
           a(){
             
             g=jpanel1.getGraphics();
             draw();
              }
             void main(){
              draw()
                }
           按钮事件响应函数{
             draw();
              }
             draw(){   //draw()的定义在这,用g画条线
                 g.drawLine(1,1,100,100);
                   }
    }
    结果是在构造函数 和 main方法里draw都画不出来,而响应函数里的却画得出来?为什么?还有paint repaint update这些方法 在API里看不明白,不用他们,直接用Graphics不是也能画图么。用Grahpics画的图  最小化就没了,怎么解决啊?
      

  2.   

    最标准的用法是把绘图的代码放在paint方法里面。
    为什么呢 因为你这个图不是只画一遍的  由于各种原因 它会经常性地“重绘”,而每次重绘的时候就会调用paint方法,所以这里面的代码可以保证每次重绘的时候都能把你想要的图正确地绘制出来。至于你说的为什么main方法里draw都画不出来,而响应函数里的却画得出来,也是因为重绘呀。
    其实它并不是画不出来,只是画出来了以后,还没等你看到,就被下一次重绘给覆盖掉了 所以画图的代码要放在paint方法里面啊更细节的方面,paint,paintComponents这些个方法有什么区别,以及repaint有什么用,你可以再参考参考swing的教程,应该有很多的
      

  3.   

    感谢楼上,我已经明白你说的意思了,最大最小化等其他原因造成了repaint 调用update,清画板。再paint.