2011-05-16 81 views
2

可能重複繪製矩形:
How to draw a rectangle on a java applet using mouse drag event and make it stay使用鼠標

你好。 我想知道如何使用mousedragged事件繪製矩形。我知道我必須使用Class Point記錄鼠標位置。我需要在paint方法和mousedragged調用中實現paint函數,或者我的paint代碼應該在mousedragged事件中實現?

在這個時候我把我的代碼放在鼠標拖動的事件。這是代碼:

@Override 
    public void mousePressed(MouseEvent e) 
    { 
     super.mousePressed(e); 
     System.out.println("f.getGlassPane() mousePressed"); 
     if(e.getButton() == MouseEvent.BUTTON1) 


     frame.getGlassPane().setVisible(true); 

     startPoint=e.getPoint(); 

     Graphics2D g = null; 
      Graphics2D g2 = (Graphics2D) g; 
     Rectangle2D prostokat = new Rectangle2D.Double(); 
     prostokat.setFrameFromDiagonal(e.getPoint().x, e.getPoint().y,startPoint.x, startPoint.y); 
     g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.5F)); 
     g2.setColor(Color.BLUE); 
     g2.fill(prostokat); 
     g2.draw(prostokat); 

    } 

    }); 
+1

到目前爲止你有什麼? – ColWhi 2011-05-16 13:04:48

+3

這裏有很多類似的問題 - 這可以有一個答案爲您的問題:http://stackoverflow.com/questions/1115359/how-to-draw-a-rectangle-on-a-java-applet -using-mouse-drag-event-and-make-it-stay – 2011-05-16 13:07:41

+0

使用mousePressed並存儲位置並存儲mouseReleased的位置。用這些值你可以計算出你的矩形。 – monty 2011-05-16 13:13:28

回答

2

您還需要處理mouseReleasedmouseDragged,如圖herehere

+0

這第二個鏈接是exacly我想要的。多謝 :) – edi233 2011-05-16 13:23:10