AWT MouseMotionListener e.getButton() ist immer 0 unter Linux und Windows

frostbyte

Aktives Mitglied
Hallo,

ich benutze die Funktion e.getButton() im MouseMotionListener um die Maustaste zu bekommen. Unter Mac OS X sind die auch brav 1, 2 und 3. Unter Windows und Linux jedoch immer 0. Im MouseListener hingegen bekomme ich unter allen Systemen die richtige Maustaste zurück.

Was passiert da?
 

frostbyte

Aktives Mitglied
Java:
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.event.MouseWheelEvent;
import java.awt.event.MouseWheelListener;
import java.awt.geom.AffineTransform;
import java.awt.geom.NoninvertibleTransformException;
import java.awt.geom.Point2D;

public class MapPanListener implements MouseWheelListener, MouseMotionListener {

	int x, y;
	int startx, starty;
	int wheel = 0;
	double angle = 0.0;

	View2D view;

	public MapPanListener(View2D view2D) {
		this.view = view2D;
		
		wheel = (int) (Math.log(Math.sqrt(view.transform.getDeterminant()) / 100.0) * 15);
	}

	public void mouseWheelMoved(MouseWheelEvent e) {
		wheel -= e.getWheelRotation();
		if (wheel >= -65) {
			try {
				/* get the current mouse position and translate it from the px coordinate system of the screen into the meter
				 * coordinate system of the game with the inverse transformation */
				Point2D currentMousePos = e.getPoint();
				AffineTransform inverse = view.transform.createInverse();
				Point2D mouseInverse = inverse.transform(currentMousePos, null);
				view.transform.translate(mouseInverse.getX(), mouseInverse.getY());

				view.transform.scale(1.0/view.viewScaling, 1.0/view.viewScaling);

				view.viewScaling = (int)(Math.exp(wheel/15.0)*100);

				view.transform.scale(view.viewScaling, view.viewScaling);

				view.transform.translate(-mouseInverse.getX(), -mouseInverse.getY());
			} catch (NoninvertibleTransformException e1) {
				e1.printStackTrace();
			}
		}
		else {
			wheel = -65;
		}
	}

	public void mouseDragged(MouseEvent e) {		
		if (e.getButton() == MouseEvent.BUTTON1 || e.getButton() == 0) {
			view.transform.rotate(-angle);
			view.transform.translate((e.getX()-x) / view.transform.getScaleX(), (e.getY()-y) / view.transform.getScaleY());
			view.transform.rotate(angle);
		}
		else if (e.getButton() == MouseEvent.BUTTON3) {
			double oldAngle = angle;
			angle += (e.getY()-y)/100.0;

			Point2D mouse;
			try {
				mouse = view.transform.inverseTransform(new Point2D.Double(startx, starty), null);
				view.transform.rotate(angle - oldAngle, mouse.getX(), mouse.getY());
			} catch (NoninvertibleTransformException e1) {
				e1.printStackTrace();
			}

		}

		x = e.getX();
		y = e.getY();
	}

	/** update the mouse position when it is just moved without any action */
	public void mouseMoved(MouseEvent e) {
		startx = x = e.getX();
		starty = y = e.getY();
	}
}

Das hier [c]e.getButton() == MouseEvent.BUTTON1 || e.getButton() == 0[/c] ist die momentane Notlösung, damit wenigstens eine der Funktionen funktioniert.
 

frostbyte

Aktives Mitglied
Dafür müsste ich aber noch extra einen MouseListener hier implementieren, oder? Kommt der sich dann nicht mit meinem anderen MouseListener ins Gehege?
 

kingston

Mitglied
Probiere es mal lieber mit
Java:
public void mouseDragged(MouseEvent e) {
if (e.getModifiers() == MouseEvent.BUTTON1_MASK)
// tüdelditodo
}

oder wie laut Java-Source empfohlen:
Java:
public void mouseDragged(MouseEvent e) {
if (e.getModifiers() == MouseEvent.BUTTON1_DOWN_MASK)
// tüdelditodo
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Arif Swing MouseMotionListener liefert falsche Werte ? AWT, Swing, JavaFX & SWT 7
L JComponent und MouseMotionListener AWT, Swing, JavaFX & SWT 2
M mouseDragged im MouseMotionListener AWT, Swing, JavaFX & SWT 1
javampir MouseMotionListener rechte Maustaste AWT, Swing, JavaFX & SWT 4
D Swing Objekte bewegen mit MouseMotionListener AWT, Swing, JavaFX & SWT 4
C MouseMotionListener AWT, Swing, JavaFX & SWT 5
C MouseMotionListener fired keine Events mehr wenn in Button AWT, Swing, JavaFX & SWT 2
B MouseMotionListener stotterhafte Ausführung AWT, Swing, JavaFX & SWT 2
M MouseListener/MouseMotionListener AWT, Swing, JavaFX & SWT 2
T MouseMotionListener außerhalb von Frame AWT, Swing, JavaFX & SWT 3
S MouseMotionListener AWT, Swing, JavaFX & SWT 7
J mouseDragged und MouseMotionListener AWT, Swing, JavaFX & SWT 3
M MouseMotionListener oder mouseListener AWT, Swing, JavaFX & SWT 6
J Problem mit eigener Titelleiste und MouseMotionListener AWT, Swing, JavaFX & SWT 2
H MouseMotionListener#mouseDragged() in großen Abständen AWT, Swing, JavaFX & SWT 7
M Java, Swing: MouseMotionListener AWT, Swing, JavaFX & SWT 19
F MouseMotionListener und Parameter? AWT, Swing, JavaFX & SWT 4
B MouseMotionListener zu träge? AWT, Swing, JavaFX & SWT 3
L MouseMotionListener AWT, Swing, JavaFX & SWT 2
N "globaler" MouseListener (+MouseMotionListener) AWT, Swing, JavaFX & SWT 4
K MouseMotionListener zu lahm? AWT, Swing, JavaFX & SWT 3
Hatsi09 Javafx MediaPlayer spielt nicht immer AWT, Swing, JavaFX & SWT 3
T Swing Tooltip-Delay funktioniert nicht immer. AWT, Swing, JavaFX & SWT 1
J JOptionPane ruft sich selbst immer wieder neu auf AWT, Swing, JavaFX & SWT 3
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
M UI immer lesbar, egal welche Auflösung AWT, Swing, JavaFX & SWT 7
N SceneBuilder wie auf Attribute zugreifen? Diese sind immer null. AWT, Swing, JavaFX & SWT 6
B Swing Posistion von JButton auslesen gibt immer 0 aus AWT, Swing, JavaFX & SWT 1
K JTable getValueAt() klappt nicht immer AWT, Swing, JavaFX & SWT 1
K JavaFX Linie immer in der Mitte der Szene halten AWT, Swing, JavaFX & SWT 12
M Java FX Immer aktuelle Mausposition anzeigen AWT, Swing, JavaFX & SWT 6
Tom299 JavaFX Default-Cursor läßt sich nicht immer "aktivieren" AWT, Swing, JavaFX & SWT 3
Z JComponent's requestFocus() - Wieso nicht immer anwendbar? AWT, Swing, JavaFX & SWT 1
T SWT Mysql Tabelle zeigt immer nur den ersten Wert immer wieder an AWT, Swing, JavaFX & SWT 3
C JTextPane scrollt mit setText() immer nach oben AWT, Swing, JavaFX & SWT 2
B JFrame immer an gleicher stelle auf anderem Frame AWT, Swing, JavaFX & SWT 5
U Fenster beim Vergörßern immer quadratsich AWT, Swing, JavaFX & SWT 7
B Swing Form undecorated: Beim Bewegen geht die Maus immer automatisch zur linken Seite. AWT, Swing, JavaFX & SWT 7
V Buttons sehen immer "active" aus AWT, Swing, JavaFX & SWT 6
M SWT CCombo immer so groß wie der größte Wert! AWT, Swing, JavaFX & SWT 0
MaDDin-94 Swing Listener reagiert nicht immer AWT, Swing, JavaFX & SWT 2
M Key-,... Listener funktioniert nicht immer AWT, Swing, JavaFX & SWT 2
J Abbrechen muss immer einmal mehr gedrückt werden AWT, Swing, JavaFX & SWT 3
D Letzter Button füllt immer ganzes Fenster AWT, Swing, JavaFX & SWT 5
L View aus dem MVC ist immer die GUI? AWT, Swing, JavaFX & SWT 5
C JTable Datensätze bleiben immer gleich AWT, Swing, JavaFX & SWT 14
K 2D-Grafik interstectsLine gibt immer false zurück AWT, Swing, JavaFX & SWT 18
D JDialog: immer nur einer gleichzeitig AWT, Swing, JavaFX & SWT 4
M Fenster mit ProgressMonitor immer leer AWT, Swing, JavaFX & SWT 23
I Fenster immer im Vordergrund AWT, Swing, JavaFX & SWT 14
K Swing Warum bleibt das Image immer gleich AWT, Swing, JavaFX & SWT 4
D JTree node reagiert bei Klick nicht immer AWT, Swing, JavaFX & SWT 2
B JScrollPane scrollt nicht immer automatisch AWT, Swing, JavaFX & SWT 2
C SWT Combo getSelectionIndex() immer -1? AWT, Swing, JavaFX & SWT 10
S Canvas in ScrollPane wird beim scrollen immer neu gezeichnet AWT, Swing, JavaFX & SWT 3
W 2D-Grafik Koordinaten nicht immer die selben AWT, Swing, JavaFX & SWT 9
D Swing PopupMenu immer an gewünschte Position? AWT, Swing, JavaFX & SWT 2
A BufferedImage nach dem Speichern immer schwarz AWT, Swing, JavaFX & SWT 8
C TextArea Ausgabe immer ganz oben AWT, Swing, JavaFX & SWT 3
S Image wird nicht (immer) in paintComponent gezeichnet? AWT, Swing, JavaFX & SWT 6
O Immer Exception in AWT-EventQueue-0 AWT, Swing, JavaFX & SWT 5
N JTable, Zeile bleibt immer selektiert.... AWT, Swing, JavaFX & SWT 3
A Swing JFrame vergrößert sich immer bei setText() eines Labels AWT, Swing, JavaFX & SWT 3
G 2D-Grafik BufferedImage Hintergrund immer schwarz AWT, Swing, JavaFX & SWT 4
M WindowEvent löst immer PropertyChangeListener aus AWT, Swing, JavaFX & SWT 9
F Spalten in JTable immer am rechten Tabellenrand AWT, Swing, JavaFX & SWT 3
2 Werde Java GUIs immer noch mit dem in die Jahre gekommen Swing gemacht? AWT, Swing, JavaFX & SWT 12
S JFreeChart Achse immer sichtbar AWT, Swing, JavaFX & SWT 2
C AWT dispose() erzeugt nicht immer formfeed AWT, Swing, JavaFX & SWT 2
R Swing JDialog liefert immer false, 2 JListen verknüpfen AWT, Swing, JavaFX & SWT 3
B Swing: letztes Element wird immer auf Fenstergröße gezogen AWT, Swing, JavaFX & SWT 3
B Swing JTable getSelectedRow() liefert immer -1 AWT, Swing, JavaFX & SWT 6
A Größe eines JFrames immer nur quadratisch AWT, Swing, JavaFX & SWT 8
aze getX ,getY immer 0 AWT, Swing, JavaFX & SWT 9
R JTable immer nur die letzte Spalte markiert.... AWT, Swing, JavaFX & SWT 4
ABstraCT JTabbedPane - click wird nicht immer ausgeführt ! AWT, Swing, JavaFX & SWT 10
aze JDialog immer so breit ,dass die Überschrift sichtbar ist AWT, Swing, JavaFX & SWT 6
S Listener der mich informiert wann immer einer Liste ein Element hinzugefuegt wird? AWT, Swing, JavaFX & SWT 4
multiholle Swing Mouselistener auf Parentpanel immer aktiv AWT, Swing, JavaFX & SWT 7
hdi Swing JLabel - Grösse passt sich immer Text an AWT, Swing, JavaFX & SWT 17
P JButtons haben nicht immer lust zu erscheinen AWT, Swing, JavaFX & SWT 9
R JScrollBar - Immer drei Zeilen weiter AWT, Swing, JavaFX & SWT 10
N JLabel immer zentriert AWT, Swing, JavaFX & SWT 2
S JDialog startet immer wieder neu AWT, Swing, JavaFX & SWT 2
G Value vom TreeCellEditor ist immer null AWT, Swing, JavaFX & SWT 3
M GridBagLayout - Position immer zentriert AWT, Swing, JavaFX & SWT 5
A Scrollbalken von JScrollPane immer anzeigen AWT, Swing, JavaFX & SWT 2
GilbertGrape JTable - immer leere Zeile AWT, Swing, JavaFX & SWT 6
K Textfelder auslesen gibt immer Fehler AWT, Swing, JavaFX & SWT 2
H SWT - KeyListener unterbricht immer am Anfang AWT, Swing, JavaFX & SWT 2
G Ein jTextField im laufe das Programmes immer wieder updaten AWT, Swing, JavaFX & SWT 2
C JScrollPane immer ganz unten ausrichten AWT, Swing, JavaFX & SWT 17
G Fenster immer im Vordergrund und aktiv? AWT, Swing, JavaFX & SWT 2
G JScrollpage: Viewport beim Zoomen immer relative zentrieren AWT, Swing, JavaFX & SWT 5
G JTable wird nicht immer angezeigt AWT, Swing, JavaFX & SWT 4
der JoJo [SWT]Meherer Composite's , immer nur eins anzeigen AWT, Swing, JavaFX & SWT 2
T JComboBox immer ItemStateChanged werfen AWT, Swing, JavaFX & SWT 30
S Frame Fenster immer im vordergrund AWT, Swing, JavaFX & SWT 3
M JComboBox in JTable immer sichtbar AWT, Swing, JavaFX & SWT 16
F Scrollpane scrollt immer zur TextArea AWT, Swing, JavaFX & SWT 8

Ähnliche Java Themen

Neue Themen


Oben