# MouseListener - Wert-Übergabe



## obiwan (25. Jun 2006)

Hallo,

ich möchte ein Rechteck zeichnen lassen.
*beim MousePressed die Anfangs-Koordinaten
*beim MouseReleased die End-Koordinaten

Mein Problem ist die richtige Übergabe von e.getX, e.getY , um das Rechteck zu zeichnen


```
class MyMouseListener extends MouseAdapter {
		public void mousePressed(MouseEvent e) {
			e.getX();
			e.getY();		
		}
		public void mouseReleased(MouseEvent f) {
			Graphics g = getGraphics();
			g.drawRect(e.getX(), e.getY(), f.getX(), f.getY()); //Fehler: e cannot be resolved
		}
	}
```

Wie funktioniert das mit der richtigen Wert-übergabe von e?

Vielen Dank.


----------



## obiwan (25. Jun 2006)

hmm
mit return (e.getX()) klappts ja auch nicht, da oben steht ja nen void


----------



## André Uhres (25. Jun 2006)

obiwan hat gesagt.:
			
		

> ..ich möchte ein Rechteck zeichnen lassen..




```
/*
 * Rechteck_Aufziehen.java
 */
//package paint;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Rechteck_Aufziehen extends JFrame {
    public Rechteck_Aufziehen() {
        super("Rechteck Aufziehen");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(400, 300);
        setLocationRelativeTo(null);
        panel = new DrawingPanel();
        add(panel);
    }
    public static void main(String args[]) {
        new Rechteck_Aufziehen().setVisible(true);
    }
    private DrawingPanel panel;
    public class DrawingPanel extends JPanel implements MouseListener, MouseMotionListener {
        private Image image;
        private Graphics2D g2d;
        private int x1, y1;
        private int x2, y2;
        public DrawingPanel() {
            addMouseListener(this);
            addMouseMotionListener(this);
        }
        public void mouseClicked(MouseEvent e) {}
        public void mouseEntered(MouseEvent e) {}
        public void mouseExited(MouseEvent e) {}
        public void mouseReleased(MouseEvent e) {}
        public void mouseMoved(MouseEvent e) {}
        public void mousePressed(MouseEvent evt) {
            x1 = evt.getX();
            y1 = evt.getY();
            x2 = x1;
            y2 = y1;
            rechteckZeichnen(Color.black);
        }
        public void mouseDragged(MouseEvent evt) {
            rechteckZeichnen(Color.white);
            x2 = evt.getX();
            y2 = evt.getY();
            rechteckZeichnen(Color.black);
        }
        private void rechteckZeichnen(Color color){
            int[] xPoints = new int[]{x1,x2,x2,x1};
            int[] yPoints = new int[]{y1,y1,y2,y2};
            g2d.setColor(color);
            g2d.drawPolygon(xPoints, yPoints, 4);
            repaint();
        }
        public void paintComponent(Graphics g) {
            super.paintComponent(g);
            if (image == null) {
                image = createImage(getWidth(), getHeight());
                g2d = (Graphics2D)image.getGraphics();
                g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                        RenderingHints.VALUE_ANTIALIAS_ON);
                g2d.setColor(Color.white);
                g2d.fillRect(0, 0, getWidth(), getHeight());
                g2d.setColor(Color.black);
            }
            Rectangle r = g.getClipBounds();
            g.drawImage(image, r.x, r.y, r.width+r.x, r.height+r.y,
                    r.x, r.y, r.width+r.x, r.height+r.y, null);
        }
    }
}
```


----------



## obiwan (25. Jun 2006)

Klasse, vielen Dank für die schnelle Antwort.


----------

