mouseReleased(MouseEvent m) überflüssig?

Status
Nicht offen für weitere Antworten.

BlubBlub

Bekanntes Mitglied
hi ich hab folgendes programm aus meiner programmierungvorlesungsveranstaltung:
wenn man die linke maustaste drückt und dann die maus zieht wird ein rechteck aufgespannt.

Java:
public class Main 
{
	public static void main(String[] a)
	{
		new MyFrame();
	}
}

Java:
import javax.swing.JFrame;

public class MyFrame extends JFrame 
{
	MyFrame()
	{
		getContentPane().add(new Zeichenflaeche());
		setLocation(100, 100);
		setSize(400, 400);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setVisible(true);
	}
}

Java:
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionAdapter;

import javax.swing.JPanel;

public class Zeichenflaeche extends JPanel
{
	Point a, b;
	
	Zeichenflaeche()
	{
		addMouseListener(new MouseAdapter()	
							{
								public void mousePressed(MouseEvent m)
								{
									a = m.getPoint();
									b = null;
									repaint();
								}
								
								public void mouseReleased(MouseEvent m)
								{
									b = m.getPoint();
									repaint();
								}
							});
		
		addMouseMotionListener(new MouseMotionAdapter()
								  {
									public void mouseDragged(MouseEvent m)
									{
										b = m.getPoint();
										repaint();
									}
								  });
	}
	
	public void paint(Graphics g)
	{
		g.setColor(getBackground());
		g.fillRect(0, 0, getWidth(), getHeight());
		
		if(a!= null && b!= null)
			zeichneRechteck(g, a, b);
	}
	
	public void zeichneRechteck(Graphics g, Point a, Point b)
	{
		g.setColor(Color.blue);
		int obenlinks_x, obenlinks_y, breite, hoehe;
		
		obenlinks_x = (int)Math.min(a.getX(), b.getX());
		obenlinks_y = (int)Math.min(a.getY(), b.getY());
		breite = (int)Math.abs(a.getX()-b.getX());
		hoehe = (int)Math.abs(a.getY()-b.getY());
		g.drawRect(obenlinks_x, obenlinks_y, breite, hoehe);
	}
}

nun frage ich mich ob die methode mouseRealeased(..) hier nicht komplett überflüssig ist, denn wenn ich sie weglasse sehe ich keinen unterschied beim zeichnen im vergleich zu zuvor.
wozu also diese methode hier?
 

hdi

Top Contributor
ja, in diesem bsp ist es überflüssig. der letzte mouseDragged-Aufruf enthält die gleichen Mouse-Koordinaten wie beim Aufruf der mouseReleased, d.h. der code:

Java:
b = m.getPoint();
repaint();

wird doppelt ausgeführt, was nicht nötig ist.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
padde479 MenuItem MouseEvent/-Listener AWT, Swing, JavaFX & SWT 5
MouseEvent richtig initialisieren AWT, Swing, JavaFX & SWT 1
S JavaFX Fehler zwischen View und Controller bei MouseEvent (MVC) AWT, Swing, JavaFX & SWT 13
C MouseEvent JavaFX AWT, Swing, JavaFX & SWT 4
L MouseEvent-Konflikt AWT, Swing, JavaFX & SWT 1
S JavaFX Unterschied MouseEvent und ActionEvent AWT, Swing, JavaFX & SWT 3
A Mouseevent Vorrang AWT, Swing, JavaFX & SWT 10
X Swing MouseEvent auslösen AWT, Swing, JavaFX & SWT 3
C MouseEvent AWT, Swing, JavaFX & SWT 8
R MouseEvent.getX() liefert in Applet Screen-Koordinate AWT, Swing, JavaFX & SWT 2
T JLabel adden bei einem MouseEvent AWT, Swing, JavaFX & SWT 2
F AWT MouseEvent - consume() funktioniert nicht AWT, Swing, JavaFX & SWT 6
S JButton + MouseEvent AWT, Swing, JavaFX & SWT 2
J Swing JButton und MouseEvent AWT, Swing, JavaFX & SWT 2
C Swing Problem mit MouseEvent in JTable AWT, Swing, JavaFX & SWT 5
L "Fremdes" JPanel von MouseEvent aus Ändern AWT, Swing, JavaFX & SWT 2
F MouseEvent bei PopupMenu abfangen AWT, Swing, JavaFX & SWT 2
B Button identifizieren unter MouseEvent AWT, Swing, JavaFX & SWT 7
I AWT paint() in MouseEvent aufrufen klappt nicht AWT, Swing, JavaFX & SWT 8
E MouseEvent von Kindelementen abfangen AWT, Swing, JavaFX & SWT 2
S Zugriff auf statische Var in MouseEvent -> Warnung AWT, Swing, JavaFX & SWT 6
A Problem mit Jframe und mouseevent AWT, Swing, JavaFX & SWT 10
B kein MouseEvent bei zu schneller Bewegung der Maus AWT, Swing, JavaFX & SWT 7
R JButton in JList - MouseEvent-Problem AWT, Swing, JavaFX & SWT 12
A MouseEvent auf Container bzw. Frame weiterleiten AWT, Swing, JavaFX & SWT 5
M mouseEvent an darunterliegende Komponenten weiterleiten AWT, Swing, JavaFX & SWT 2
M MouseEvent JButton Taschenrechner AWT, Swing, JavaFX & SWT 5
X MouseEvent selber auslösen AWT, Swing, JavaFX & SWT 12
H mouseEvent AWT, Swing, JavaFX & SWT 6
G jList + mouseevent (rechtsklick) AWT, Swing, JavaFX & SWT 1
G MouseEvent beenden AWT, Swing, JavaFX & SWT 17
G MouseEvent Problem mit JFrame über einen modalen JDialog AWT, Swing, JavaFX & SWT 3
G JTree MouseEvent AWT, Swing, JavaFX & SWT 6
M MouseEvent in der EventQueue vor versetzen AWT, Swing, JavaFX & SWT 4
sliwalker MouseEvent,JKomponente aus Array: Wie bekommt man den Index AWT, Swing, JavaFX & SWT 2
H MouseEvent bei Drag & Drop (mittels TransferHandler) AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen

Neue Themen


Oben