可能重複繪製矩形:
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);
}
});
到目前爲止你有什麼? – ColWhi 2011-05-16 13:04:48
這裏有很多類似的問題 - 這可以有一個答案爲您的問題: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
使用mousePressed並存儲位置並存儲mouseReleased的位置。用這些值你可以計算出你的矩形。 – monty 2011-05-16 13:13:28