Mouselistener

Status
Nicht offen für weitere Antworten.

Dog86

Gesperrter Benutzer
Hallo,

ich habe folgenden COde

Java:
package test;

import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class test{
	
	static JLabel jLabel = null;
	public static void init()
	{
		System.out.println("init");
		jLabel = new JLabel("Test");
		jLabel.setBounds(10, 10, 20, 20);
	}
	public static void main(String[] args){
    
	JFrame frame = new JFrame();	
	
	frame.setSize(200,200);
	frame.setLayout(null);
	if(jLabel == null)
		init();
	
	
	jLabel.addMouseMotionListener(new MouseMotionListener() {
		
		public void mouseMoved(MouseEvent e) {
			
			
		}

		public void mouseDragged(MouseEvent e) {	
			jLabel.setBounds(e.getX(),e.getY(), 20, 20);
			jLabel.repaint();
		}
	});
	
	frame.add(jLabel);
	jLabel.setVisible(true);
	frame.setVisible(true);
  }
}

Ich will dieses JLabel also mit der Maus verschieben können, das haut so weit auch hin. Mein Problem ist aber, dass die ganze Sache irgendwie wild umherspringt..

Das ganze soll am Ende quasi eine Art verschieben von Elementen werden..doch woher kommt das wilde springen?

Wäre nett wenn mir jmd. eben mal helfen könnte.
 
S

SlaterB

Gast
e.getX()/ e.getY() liefert dir die Position der Maus relativ zum Label,
Bounds hat aber mit der Position des Labels im umgebenen JFrame/ JPanel zu tun

da musst du dir im Detail anschauen was passiert,
das Label ist anfangs auf Bounds 10,10,
die Maus ist im Label z.B. an Position 15, 15 (entspräche im Panel 25,25)

die erste Bewegung führt zu Listener getX/Y 15, 15 -> setBounds 15,15, das ist gleich ein Sprung von 5 Pixeln,

bei der nächsten Bewegung liefert der Listener getX/Y 10,10, denn die Maus hat sich ja kaum bewegt, höchstens um 1 Pixel,
das Label ist aber inzwischen ganz wo anders (um 5 Pixel verschoben worden),
jedenfalls führt das wieder zu setBounds 10,10, Sprung zurück,

wird die Maus weit weg bewegt, kann man das auch alles im Detail nachvollziehen,
besserer Code sieht so aus:
Java:
public class Test
{
    public static void main(String[] args)
        throws Exception
    {
        X.main(null);
    }

}


class X
{
    static JLabel l = null;
    static int lX;
    static int lY;

    public static void init()
    {
        System.out.println("init");
        l = new JLabel("Test");
        l.setBackground(Color.YELLOW);
        l.setOpaque(true);
        l.setBounds(10, 10, 30, 30);
    }

    public static void main(String[] args)
    {

        JFrame frame = new JFrame();

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(200, 200);
        frame.setLayout(null);
        if (l == null) init();

        l.addMouseListener(new MouseAdapter()
            {

                public void mousePressed(MouseEvent e)
                {
                    lX = e.getX();
                    lY = e.getY();
                }

            });
        l.addMouseMotionListener(new MouseMotionAdapter()
            {

                public void mouseDragged(MouseEvent e)
                {
                    Rectangle r = l.getBounds();
                    l.setBounds(r.x + e.getX() - lX, r.y + e.getY() - lY, 30, 30);
                    l.repaint();
                }
            });

        frame.add(l);
        frame.setVisible(true);
    }

}
 
Zuletzt bearbeitet von einem Moderator:
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P JFrame, Linien zeichnen, MouseListener Java Basics - Anfänger-Themen 2
H MouseListener klicks begrenzen Java Basics - Anfänger-Themen 4
H MouseListener begrenzen und Speichern Java Basics - Anfänger-Themen 1
V Problem - MouseListener/2DGraphics Java Basics - Anfänger-Themen 2
R Variablen MouseListener funktioniert auf anderen Pcs nur bedingt Java Basics - Anfänger-Themen 6
G MouseListener funktioniert nicht wie geplant Java Basics - Anfänger-Themen 4
GRAZZ0R MouseListener - Rechteck Bewegen Java Basics - Anfänger-Themen 1
R Variable Klassenübegreifend MouseListener Java Basics - Anfänger-Themen 0
D MouseListener funktioniert nach Timerstart nicht mehr Java Basics - Anfänger-Themen 9
J MouseListener für Schleifen-Objekte Java Basics - Anfänger-Themen 13
S vom JPanel aus durch Mouselistener Internet aufrufen Java Basics - Anfänger-Themen 6
S GUI ImageIcon Mouselistener Link Java Basics - Anfänger-Themen 0
P MouseListener funktioniert nicht Java Basics - Anfänger-Themen 6
J KeyListener,MouseListener,MouseMotionListener und static Java Basics - Anfänger-Themen 7
P Problem mit MouseListener Java Basics - Anfänger-Themen 4
T MouseListener, recht Taste Java Basics - Anfänger-Themen 2
M MouseListener funktioniert nicht Java Basics - Anfänger-Themen 9
E Mouselistener auf jTable Java Basics - Anfänger-Themen 18
B Variablen an MouseListener übergeben Java Basics - Anfänger-Themen 5
H MouseListener für ein eingefügtes Bild in einem JFrame Java Basics - Anfänger-Themen 7
H Mouselistener bei JTable Java Basics - Anfänger-Themen 4
G MouseListener für mehrere Buttons Java Basics - Anfänger-Themen 11
J MouseListener fuer gezeichnete Polyline Java Basics - Anfänger-Themen 3
L Label + MouseListener Java Basics - Anfänger-Themen 12
M MouseListener funkioniert auf JPanel nicht Java Basics - Anfänger-Themen 8
P Jtree MouseListener und NoCollapse Java Basics - Anfänger-Themen 2
M Schiebepuzzle: MouseListener und Graphics? Java Basics - Anfänger-Themen 6
M MouseListener Java Basics - Anfänger-Themen 2
kitz MouseListener Java Basics - Anfänger-Themen 8
B MouseListener & Graphics Java Basics - Anfänger-Themen 10
D Problem mit Mouselistener und jtable Java Basics - Anfänger-Themen 7
C fragen zu MouseListener Java Basics - Anfänger-Themen 3
M MouseListener funktioniert in jar-file nicht mehr Java Basics - Anfänger-Themen 13
F Logikproblem: Auf Mouselistener warten Java Basics - Anfänger-Themen 6
E Auf Mouselistener warten?! Java Basics - Anfänger-Themen 20
S Probleme mit 2 mouselistener Java Basics - Anfänger-Themen 6
A Frage zu MouseListener Java Basics - Anfänger-Themen 2
A jPanel an MouseListener übergeben? Java Basics - Anfänger-Themen 2
S Swing JEditoPane MouseListener Java Basics - Anfänger-Themen 5
M Mouselistener Java Basics - Anfänger-Themen 4
S MouseListener funzt net. Java Basics - Anfänger-Themen 5
G MouseListener double click? Java Basics - Anfänger-Themen 1
V MouseListener Java Basics - Anfänger-Themen 5
M MouseListener Java Basics - Anfänger-Themen 3
N Mouselistener? Java Basics - Anfänger-Themen 5
T ein MouseListener pro Objekt sinnvoll? Java Basics - Anfänger-Themen 4
F MouseListener - Unhandled IOException Java Basics - Anfänger-Themen 2
U MouseListener Java Basics - Anfänger-Themen 2
L Array von Buttons, jeder soll MouseListener haben Java Basics - Anfänger-Themen 5
S MouseListener - Events auf Mouseklick Java Basics - Anfänger-Themen 14
L MouseListener Problem. Java Basics - Anfänger-Themen 2
S mouselistener Java Basics - Anfänger-Themen 3
N MouseListener Java Basics - Anfänger-Themen 2
J MouseListener implementieren Java Basics - Anfänger-Themen 12
P MouseListener wird anscheinend nicht benutzt Java Basics - Anfänger-Themen 12
N MouseListener - reagiert zu spät Java Basics - Anfänger-Themen 3
D JList - Textzeilen MouseListener zuweisen Java Basics - Anfänger-Themen 4
M prüfen ob mouselistener gesetzt ist. Java Basics - Anfänger-Themen 10
O image und mouseListener Java Basics - Anfänger-Themen 15
W MouseListener Probleme beim Abfangen Java Basics - Anfänger-Themen 8
P Kann keinen MouseListener hinzufügen Java Basics - Anfänger-Themen 3
G MouseListener einbauen - wie? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben