Avatar billede Simon Praktikant
20. september 2005 - 14:37 Der er 15 kommentarer og
1 løsning

mouseMoved selv om knap er trykket nede

Jeg har brug for at få en event når musen bliver flyttet, uanset om der er trykket knapper nede eller ej.

mouseMoved(MouseEvent e) bliver ikke kaldt hvis der er trykket knapper nede
mouseDragged(MouseEvent e) kræver at jeg starter med at trykke en knap ned.
(se http://java.sun.com/j2se/1.4.2/docs/api/java/awt/event/MouseMotionListener.html)
Avatar billede mikkelbm Nybegynder
20. september 2005 - 22:55 #1
mouseMoved bliver ikke kaldt, hvis du laver en mouseDragged - og omvendt.

Derfor kan du vel også udføre den samme kode for begge metoder, da det er den samme mouseevent du får.?
Avatar billede mikkelbm Nybegynder
20. september 2005 - 22:57 #2
Eksempel:

import java.awt.event.*;
import javax.swing.*;

public class MouseMove extends JFrame
{
    public MouseMove ()
    {
        setSize (400, 400);
        this.addMouseMotionListener(new MouseMotionAdapter()
        {
            public void mouseMoved (MouseEvent e)
            {
                printMe (e);
            }
           
            public void mouseDragged (MouseEvent e)
            {
                printMe (e);
            }
        });
    }
   
    public void printMe (MouseEvent e)
    {
        System.out.print (e.getX() + ", " + e.getY() + "  ");   
    }
   
    public static void main (String[] args)
    {
        new MouseMove ().setVisible(true);
    }
}
Avatar billede Simon Praktikant
21. september 2005 - 09:21 #3
Tak for det, men jeg kan ikke hel se hvordan det skulle virke. hvis nu knappen er trykket nede (og holdes nede) før jeg bevæger musen ind over min JFrame, så bliver mouseMoved ikke kaldt fordi knappen er nede, og mouseDragged bliver ikke kaldt, fordi jeg har trykket knappen nede UDEN for min JFrame.
Avatar billede mikkelbm Nybegynder
21. september 2005 - 10:07 #4
Men er det et aktuelt scenarie?
Avatar billede Simon Praktikant
21. september 2005 - 10:17 #5
Ja, det er det! :-)
Avatar billede Simon Praktikant
21. september 2005 - 10:24 #6
er der ikke andre events til at fange musens bevægelse end lige mouseMoved og mouseDragged. Er der ikke nogle underliggende?
Avatar billede mikkelbm Nybegynder
21. september 2005 - 10:31 #7
http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Robot.html

Men jeg mener ikke den understøtter mousemove og mousedragged.
Avatar billede mikkelbm Nybegynder
21. september 2005 - 10:36 #8
Du vil vel kun fange de events, der sker inde over din JFrame?

Og hvis det er tilfældet, så vil jeg tro den skal ha' fokus. Og det har den ikke, hvis du starter med at trække uden for din frame.
Avatar billede Simon Praktikant
21. september 2005 - 11:38 #9
tak, det var en mulighed, jeg har set på det. Men jeg synes at det er lidt for omfattende. jeg tænker bare at det MÅ da være en rigtig og enklere måde at gøre det på.
Avatar billede mikkelbm Nybegynder
21. september 2005 - 11:41 #10
Det tvivler jeg stærkt på. Det er ikke et scenarie der er behov for (mig bekendt :))

Og du kan selvfølgelig selv skrive det native kode, som kontakter styresystemet og spørger efter de mouseevents, men det bliver absolut ikke mindre komplekst.
Avatar billede Simon Praktikant
21. september 2005 - 12:38 #11
nej ok, men mange tak for din indsats. Jeg ser om jeg kan løse problemet på anden vis.
Avatar billede mikkelbm Nybegynder
30. september 2005 - 15:26 #12
Har du fået løst problemet?
Avatar billede Simon Praktikant
16. august 2006 - 09:35 #13
Mikkelbum: smid svar og point er dine. Undskyld det tog så lang tid
Avatar billede Simon Praktikant
20. august 2006 - 21:26 #14
Nej jeg fik det aldrig løst som jeg først havde tænkt mig. Løste opgaven på en anden måde. Men aligevel tak for indsatsen, og tak for hjælpen til ikke at bruge mere krudt på det.
Avatar billede Simon Praktikant
24. august 2006 - 11:31 #15
Tak for svaret. Smid svar for at få point, ellers lukket jeg selv spørgsmålet.
Avatar billede mikkelbm Nybegynder
26. august 2006 - 22:58 #16
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester