Wie implementiere ich MouseDragged richtig

sala

Mitglied
Wie bekomme ich eine saubere Navigation Maus muss gedrückt bleiben Button bewegt sich mit der Maus auf der X Achse
Code:
public void mouseMoved(MouseEvent me) {
        ispressed = true;
    }
Code:
    public void mousePressed(MouseEvent e) {
        System.out.print("Hallo");
        if(ispressed = true)
        {
        Dimension size = btnNewButton.getPreferredSize();
            btnNewButton.setBounds(e.getX(), 171, size.width, size.height);
        }
    }

Quellcode komplett
Code:
package testprogramm;

import java.awt.EventQueue;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JLabel;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;

import javax.swing.ImageIcon;
import javax.swing.JButton;

import java.awt.TextField;
import java.awt.Window;

import javax.swing.JTextField;

public  class test implements MouseListener, MouseMotionListener, ActionListener  {

    private JFrame frame;
    private JTextField textField;
    private static boolean ispressed = false;
    JButton btnNewButton = new JButton("");
 

    /**
    * Launch the application.
    */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                   
                    test window = new test();
                    window.frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
   
    /**
    * Create the application.
    */
    public test() {
        initialize();
    }

    /**
    * Initialize the contents of the frame.
    */
    private void initialize() {
        frame = new JFrame("MouseListener");
        frame.setBounds(100, 100, 575, 480);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
   

       
        btnNewButton.setIcon(new ImageIcon("C:\\Users\\ingos\\OneDrive\\Desktop\\eclipse\\bucket.png"));
       
        Dimension size = btnNewButton.getPreferredSize();
        btnNewButton.setBounds(59, 171, size.width,size.height);
        frame.getContentPane().add(btnNewButton);
       
        textField = new JTextField();
        textField.setBounds(69, 26, 177, 20);
        frame.getContentPane().add(textField);
        textField.setColumns(10);   
        btnNewButton.addMouseMotionListener(this);
        btnNewButton.addMouseListener(this);
    }
    @Override
    public void mouseDragged(MouseEvent e) {
        // TODO Auto-generated method stub
   
    }


    @Override
    public void mouseClicked(MouseEvent e) {
        // TODO Auto-generated method stub

       
       
    }


    @Override
    public void mousePressed(MouseEvent e) {
        System.out.print("Hallo");
        if(ispressed = true)
        {
        Dimension size = btnNewButton.getPreferredSize();
            btnNewButton.setBounds(e.getX(), 171, size.width, size.height);
        }
    }

      public void actionPerformed(ActionEvent e) { 
           
         
               
           
        }
    @Override
    public void mouseReleased(MouseEvent e) {
    //ispressed = false;
       
    }


    @Override
    public void mouseEntered(MouseEvent e) {
        // TODO Auto-generated method stub
       
    }

    @Override
    public void mouseMoved(MouseEvent me) {
        ispressed = true;
    }
    @Override
    public void mouseExited(MouseEvent e) {
        // TODO Auto-generated method stub
        ispressed = true;
    }
}
 

mihe7

Top Contributor
Java:
import java.awt.*;
import java.awt.event.*;
import java.net.*;
import javax.swing.*;

public class Test {

    private JFrame frame;
    private JTextField textField;
    private JButton btnNewButton;

    private MouseMotionListener dragHandler = new MouseMotionListener() {
        @Override
        public void mouseDragged(MouseEvent e) {
            Dimension size = btnNewButton.getSize();
            Point p = e.getPoint();
            p = SwingUtilities.convertPoint(e.getComponent(), p, frame.getContentPane());           
            btnNewButton.setBounds(p.x - size.width/2, 171, size.width, size.height);
        }

        @Override
        public void mouseMoved(MouseEvent e) {
        }
    };

  
    /**
    * Create the application.
    */
    public Test() {
        initialize();
    }

    /**
    * Initialize the contents of the frame.
    */
    private void initialize() {
        btnNewButton = new JButton();
        btnNewButton.addMouseMotionListener(dragHandler);
        try {         
            URL url = new URL("https://upload.wikimedia.org/wikipedia/commons/2/2b/1_dfs.png");
            btnNewButton.setIcon(new ImageIcon(url));
        } catch (MalformedURLException ex) {
            ex.printStackTrace();
        }
      
        Dimension size = btnNewButton.getPreferredSize();
        btnNewButton.setBounds(59, 171, size.width,size.height);
      
        textField = new JTextField();
        textField.setBounds(69, 26, 177, 20);
        textField.setColumns(10); 

        frame = new JFrame("MouseListener");
        frame.setBounds(100, 100, 575, 480);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.getContentPane().setLayout(null);
        frame.getContentPane().add(btnNewButton);
        frame.getContentPane().add(textField);

    }

    public void show() {
        frame.setVisible(true);
    }

    /**
    * Launch the application.
    */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {                 
                    Test window = new Test();
                    window.show();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }
}
 
X

Xyz1

Gast
Bitte formuliere deine Frage etwas ausführlicher, packe deinen Code in Java-Tags und lies zuerst die FAQs, wie man Fragen richtig stellt usw.
 

sala

Mitglied
Also i habe ein GUI Button diesen habe ich ein AchtionListener unf ein Mouse listener hinzugefügt
Code:
btnNewButton.addMouseMotionListener(this);
        btnNewButton.addActionListener(this);

Nun möchte ich wenn man auf den Button klickt das dieser Button wenn man gedrückt lässt mit der Maus auf der x Achse sich bewegt.

Code:
 public void actionPerformed(ActionEvent e) {
          
          System.out.print("Hallo");
              
          
        }
    @Override
    public void mouseReleased(MouseEvent e) {
    //ispressed = false;
        System.out.print("ich");
    }
Es funktioniert nicht wenn ich auf der Button klicke und gedrückt lasse dass dann mouse Relased für die Links Rechts bewegung ausgeführt wird. Erst wenn ich wieder los lasse geht es links rechts es soll aber gedrückt bleiben. Es wird wenn man gedrückt hält und die Maus begegt kein ich auf der Console ausgeführt
 

mihe7

Top Contributor
@mihe7
Ja Danke genau das habe ich gewollt. Ja habe es übersehen.
Jetzt muss ich das nur noch nach vollziehen damit ich weiß was gemacht wurde
Das ist schnell erklärt: die Maus bei gedrückter Taste bewegen nennt man Drag, dafür gibt es Events und dazugehörige Listener, konkret MouseMotionListener#mouseDragged. Ausschlaggebend ist also der Part:
Java:
        public void mouseDragged(MouseEvent e) {
            Dimension size = btnNewButton.getSize();
            Point p = e.getPoint();
            p = SwingUtilities.convertPoint(e.getComponent(), p, frame.getContentPane());          
            btnNewButton.setBounds(p.x - size.width/2, 171, size.width, size.height);
        }
Der Punkt des MouseEvents gibt die Position des Mauszeigers relativ zur linken oberen Ecke des JButtons an.

Zur Positionierung brauchst Du aber den Punkt relativ zur linken oberen Ecke des Containers, der den Button enthält. Daher wird die Koordinate erstmal konvertiert.

Abschließend wird der Button neu positioniert und zwar so, dass er sich horizontal mittig unter dem Mauszeiger befindet. Mehr ist das nicht.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Wie implementiere ich diese Aufgabenstellung? Java Basics - Anfänger-Themen 16
A wie implementiere ich java.util.Scanner? Java Basics - Anfänger-Themen 12
richis-fragen JTable Header ausgeblendete (width = 0) nicht per mouseDragged aufziehen. Java Basics - Anfänger-Themen 9
G mouseDragged auf Jlabel Java Basics - Anfänger-Themen 2
D Refresh bei MouseDragged funktioniert nicht Java Basics - Anfänger-Themen 4
R mit MouseDragged Rechteck verschieben. Java Basics - Anfänger-Themen 2
D Regex greift nicht richtig Java Basics - Anfänger-Themen 4
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
C Rechnen mit Brüchen, ist meine Lösung soweit richtig? Java Basics - Anfänger-Themen 4
M OOP Brüche nicht richtig berechnen Java Basics - Anfänger-Themen 3
K Hab ich dass so richtig erklärt (Objekte und Referenzen)? Java Basics - Anfänger-Themen 5
I Bild richtig speichern / Hochkant im File Explorer, nach Upload vertikal Java Basics - Anfänger-Themen 9
B Hashmap richtig bauen, die Tripel auf Zahl abbildet? Java Basics - Anfänger-Themen 10
K Warum läuft das Programm nicht(bzw. nicht richtig) Java Basics - Anfänger-Themen 4
K REGEX - Rechnungsbetrag wird nicht richtig ausgelesen. Java Basics - Anfänger-Themen 3
B Semaphoren in Abhängigkeit an Bedingungen richtig setzen Java Basics - Anfänger-Themen 3
berserkerdq2 Habe ich die Aufgabe richtig gelöst? Java Basics - Anfänger-Themen 3
R CSV Reader läuft nicht richtig an Java Basics - Anfänger-Themen 8
E Umlaute und Sonderzeichen werden nach der Build Project nicht richtig angezeigt Java Basics - Anfänger-Themen 2
G jButton führt Main Methode nicht richtig aus Java Basics - Anfänger-Themen 3
G Main Methode wird beim ersten Aufruf nicht richtig ausgeführt Java Basics - Anfänger-Themen 1
milan123 das ist meine aufgabe ich hab das problem das bei mir Wenn ich die Richtung der Linien verändern will und drei davon sind richtig, verändere ich die 4 Java Basics - Anfänger-Themen 3
JensXF Methode überschreiben, so richtig? Java Basics - Anfänger-Themen 4
C Programm das feststellen kann, ob eine eingegebene Zahl einem Schaltjahr entspricht, richtig geschrieben? Java Basics - Anfänger-Themen 11
C Sind die while-Schleifen richtig in for-Schleifen ersetzt worden? Java Basics - Anfänger-Themen 8
S Daten/Klassen/Packages richtig updaten!? Java Basics - Anfänger-Themen 2
L Ist der Code richtig Java Basics - Anfänger-Themen 3
J Wie bestehenden Quellcode in IDE richtig übernehmen Java Basics - Anfänger-Themen 27
F Methoden Methode richtig aufrufen Java Basics - Anfänger-Themen 3
D Klassen Klassendiagramm richtig erstellen Java Basics - Anfänger-Themen 20
J Module richtig einbinden Java Basics - Anfänger-Themen 2
B Sind meine If-Statements richtig angesetzt ? Java Basics - Anfänger-Themen 27
V Boolean Wert nicht richtig erkannt Java Basics - Anfänger-Themen 4
X Wie Generics richtig benutzen ? Java Basics - Anfänger-Themen 5
P Stringbuilder richtig einsetzen Java Basics - Anfänger-Themen 1
T if else Befehl funktioniert nicht richtig Java Basics - Anfänger-Themen 27
A Array richtig füllen Java Basics - Anfänger-Themen 2
S String richtig formatieren Java Basics - Anfänger-Themen 2
P Methoden richtig anwenden Java Basics - Anfänger-Themen 3
O Popoup Menü im JTable richtig anzeigen Java Basics - Anfänger-Themen 6
D Richtig für Programmieren an der UNI lernen Java Basics - Anfänger-Themen 8
X Best Practice Ein int Array richtig mischen Java Basics - Anfänger-Themen 20
D Richtig Vorbereiten auf eine Programmier Klausur Studium. Java Basics - Anfänger-Themen 7
M ObservableList wird nicht richtig geleert Java Basics - Anfänger-Themen 0
T Sortieralgorithmen richtig? Java Basics - Anfänger-Themen 1
X Objekte einer ArrayList richtig ausgeben? Java Basics - Anfänger-Themen 8
F Konstruktor richtig implementiert? Frage zu Benutzereingaben... Java Basics - Anfänger-Themen 9
I OOP Objektnamen über die Konsole richtig einlesen Java Basics - Anfänger-Themen 9
P Input/Output PQ-Formel wird nicht richtig berechnet Java Basics - Anfänger-Themen 6
P Zeichenkette Zeichen ausschlißen funktioniert nicht richtig Java Basics - Anfänger-Themen 9
H Wie lerne ich Java richtig? Java Basics - Anfänger-Themen 2
N Ich weiß nicht, wie ich meinen Code richtig designen soll und komme nicht weiter Java Basics - Anfänger-Themen 4
B Wie instanzisiert man einen Cursor richtig? Java Basics - Anfänger-Themen 3
J Polymorphie und Dynamisches Binden richtig nutzen Java Basics - Anfänger-Themen 11
N Best Practice Ist die Sortierung richtig? Java Basics - Anfänger-Themen 3
J Erste Schritte Lottozahlen richtig generieren. Java Basics - Anfänger-Themen 12
J Behauptung so richtig? Java Basics - Anfänger-Themen 10
R Listen richtig implementieren Java Basics - Anfänger-Themen 3
B OOP Objekt in IF erzeugen - funktioniert nicht so richtig Java Basics - Anfänger-Themen 11
A Methode richtig überladen Java Basics - Anfänger-Themen 6
H Aufgabe so richtig gelöst? Java Basics - Anfänger-Themen 14
S Code richtig / besser machbar? (Nicht sicher, ob Code selbst falsch ist) Java Basics - Anfänger-Themen 4
W Ist mein Struktogram richtig erstellt worden? Java Basics - Anfänger-Themen 4
L Taschenrechner mit switch und while funktioniert noch nicht richtig Java Basics - Anfänger-Themen 22
U Mehrfach verwendete Sub-Klassen richtig einbinden Java Basics - Anfänger-Themen 4
L Schleife funktioniert nicht richtig Java Basics - Anfänger-Themen 12
Meeresgott OOP Richtig mit java.util.Property umgehen Java Basics - Anfänger-Themen 22
Y Erste Schritte Ich verstehe this. nicht so richtig Java Basics - Anfänger-Themen 5
I Programm von mir - keine Ahnung mehr ob richtig falsch:-( Java Basics - Anfänger-Themen 6
M Abstände richtig wiedergeben Java Basics - Anfänger-Themen 2
S nio move() funktioniert nicht richtig Java Basics - Anfänger-Themen 2
J Timer richtig pausieren Java Basics - Anfänger-Themen 2
B Ist meine Klasse richtig kommentiert? Java Basics - Anfänger-Themen 2
kilopack15 Ist diese setter-Methode richtig? Java Basics - Anfänger-Themen 2
H OOP, wie gehts richtig? (Beispiel von meinem Prof) Java Basics - Anfänger-Themen 6
S Primzahlen berechnen funktioniert nicht richtig Java Basics - Anfänger-Themen 1
kilopack15 Lösungsansatz richtig? Java Basics - Anfänger-Themen 23
Meeresgott OOP Socket Verbindung richtig Kapseln Java Basics - Anfänger-Themen 0
Meeresgott OOP Gui, Logik und Datenbank richtig aufbauen Java Basics - Anfänger-Themen 43
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
C Warum funktioniert mein If Statement nicht richtig? Java Basics - Anfänger-Themen 18
J Aufgabe(Threads) richtig verstanden/implementiert Java Basics - Anfänger-Themen 27
K Erste Schritte Wie lerne ich Java richtig? Java Basics - Anfänger-Themen 22
U Richtig *.properties speichern Java Basics - Anfänger-Themen 0
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
B OOP Wie benutze ich die Main Funktion richtig? Java Basics - Anfänger-Themen 10
3 Gitternetz richtig darstellen Java Basics - Anfänger-Themen 3
B Exception richtig einbinden Java Basics - Anfänger-Themen 1
D CSV Files richtig zusammenführen Java Basics - Anfänger-Themen 3
D Array richtig ausgeben Java Basics - Anfänger-Themen 6
Z HashMap richtig benutzen Java Basics - Anfänger-Themen 2
S Variable (int) erhöht sich nicht richtig Java Basics - Anfänger-Themen 18
J Vererbung Wurden die Aufgaben richtig programmiert? Java Basics - Anfänger-Themen 20
J Iterator Funktioniert nicht richtig in StackImplementierung Java Basics - Anfänger-Themen 3
L0MiN Input/Output Wie kann ich Kompilierfehler richtig ausgeben lassen (Runtime)? Java Basics - Anfänger-Themen 1
J Programm im Jar-Format funktioniert nicht richtig Java Basics - Anfänger-Themen 9
L Arrays richtig initialisieren Java Basics - Anfänger-Themen 1
V Java Regex richtig parsen Java Basics - Anfänger-Themen 2
O Programm funktioniert nur im Debugger richtig Java Basics - Anfänger-Themen 2
F Klassen für Objekt richtig erstellen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben