Mein Ziel war es, diesen Code zu vereinfachen (alles funktioniert gut):MouseAdapter-Methoden - warum `mouseDragged`,` mouseMoved` und `mouseWheelMoved` enthalten?
package test;
import java.awt.Window;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JWindow;
public class A extends JWindow implements MouseListener, MouseMotionListener {
public A() {
addMouseListener(A.this);
addMouseMotionListener(A.this);
}
@Override
public void mouseClicked(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
//This method is being used, working fine
}
@Override
public void mouseReleased(MouseEvent e) {
}
@Override
public void mouseEntered(MouseEvent e) {
}
@Override
public void mouseExited(MouseEvent e) {
}
@Override
public void mouseDragged(MouseEvent e) {
//This method is being used, working fine
}
@Override
public void mouseMoved(MouseEvent e) {
}
}
Aber wenn ich entscheiden MouseAdapter
wie diese verwenden:
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
transferFocusBackward();
//This method is being used, working fine
}
@Override
public void mouseDragged(MouseEvent e) {
//This method is being used, not working anymore
}
});
mouseDragged
keine Ereignisse zu empfangen. Aber wenn ich MouseMotionListener
wie folgt hinzu:
addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
//This method is being used, working fine
}
});
addMouseMotionListener(new MouseMotionAdapter() {
@Override
public void mouseDragged(MouseEvent e) {
//This method is being used, working fine
}
});
Dann ist alles sichert normal. Also meine Frage ist - was ist der Zweck von mouseDragged
, mouseMoved
und mouseWheelMoved
Methoden in MouseAdapter
Klasse, wenn sie nicht funktionieren?
Sie müssen Ihr 'MouseAdapter' mit' addMouseMotionListener' hinzufügen, wenn es auf Mausbewegungsereignisse warten soll. – Vulcan
Warten ... was? Ich habe nicht bemerkt, dass sie dies in Java 6 geändert haben, da ich immer noch mit Java 5 arbeite, wo 'MouseAdapter' * nur 'MouseListener' implementiert. Als nächstes sagst du mir, dass sie 'SwingWorker' verbessert haben. Ha, ja richtig. – splungebob