回 帖 发 新 帖 刷新版面

主题:  急救  最小化后,线条没重新画出来

package myprojects.newdraw;

import java.awt.*;
import java.awt.event.*;

class NewDraw extends Frame {
    int ox;
    int oy;
    int ex;
    int ey;
    
    
    Image oimg ;
    Graphics og;

  public void paint(Graphics g){
      
      if(oimg !=null)
          {
              g.drawImage(oimg,0,0,this);
              
              }
      
      
      
      }

    public NewDraw() {
        
         setSize(400, 400);
         setTitle("NewDraw");
         setVisible(true);
        
        addWindowListener(new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                dispose();
                System.exit(0);
            }
        });
        

  addMouseListener(
      
      new MouseAdapter()
          {
              Dimension d = getSize();
    Image oimg = createImage(d.width,d.height);
    Graphics og= oimg.getGraphics();
              public void mousePressed(MouseEvent e)
                  { ox= e.getX();
                    oy=e.getY();
                      }
              
            public void mouseReleased(MouseEvent e)
                { ex=e.getX();
                    ey=e.getY();
                    Graphics g =getGraphics();
                    g.setColor(Color.BLUE);
                    g.drawLine(ox,oy,ex,ey);
                    og.setColor(Color.BLUE);
                    og.drawLine(ox,oy,ex,ey);
                  
                
                    }
              
              
              }

      
      
      
      );

    
    
    
        
    }

    public static void main(String args[]) {
        System.out.println("Starting NewDraw...");
        NewDraw mainFrame = new NewDraw();
        mainFrame.setSize(400, 400);
        mainFrame.setTitle("NewDraw");
        mainFrame.setVisible(true);
    }
}

回复列表 (共1个回复)

沙发

你根本没有记录以前画的线条,在paint函数里也是画了image,但这个image你每个mouse事件里都重新创建了一个,所以是不会画出来的

我来回复

您尚未登录,请登录后再回复。点此登录或注册