Mouse Koordinaten



  • hi

    wie komme ich an die mousekoordinaten nachdem ich den Ok Button in einem JFileChooser gedrückt wurde ?
    ich suche sozusagen die die koordinaten bei welchen auf den button geklickt wurde.
    ich habe mehrere dialoge die immer mit ok oder so abgeschlossen werden.der ok button des nachfolgedialoges soll an etwa der gleichen stelle stehen wie der erste. deswegen brauch ich die koordinaten um den folgenden dialog dann an diese stelle setzen zu können.
    um einiges gleich vorwegzunehemen, MouseListener sagt mir schon was.ich weiss ber weder wie ich den okButton an den Listener nschliesse noch wie ich dann meine koordinaten bekomme.thx for help

    pain



  • POINT p;
    GetCursorPos(&p);
    

    mit p.x und p.y kannst du dann die beiden Achsen abfragen.



  • kannst du mir den code mal erklären ? die Funtion GetCourserPos() hab ich nirgends gefunden und (&p) sieht dann doch irgendwie nach c++ aus ;-).wir sind hier aber bei java.wo liegt mein fehler ?

    pain

    [ Dieser Beitrag wurde am 09.01.2003 um 11:06 Uhr von pain_md editiert. ]



  • Original erstellt von <Ford Henry>:
    **```cpp
    POINT p;
    GetCursorPos(&p);

    
      
      
    mit p.x und p.y kannst du dann die beiden Achsen abfragen.**
    

    Du Schlaumeier! Lern erst Lesen dann Schreiben ...



  • Sorry, war WinAPI bzw. C. Hab mich im Forum verschaut. Es tut mir leid Leute. 🙂



  • ah, kam mir doch gleich bekannt vor der code aus alten C Tagen

    pain

    [ Dieser Beitrag wurde am 09.01.2003 um 11:11 Uhr von pain_md editiert. ]



  • Ich befürchte fast, dass du ohne einen Listener nicht ans Ziel kommen wirst. Mir fällt leider keine Methode ein, die im Allgemeinen die Cursor-Position zurückliefert.



  • hm, is zwar schade *schluchz* aber was solls.
    trotzdem danke 🙂

    pain



  • @Cegniz: hast du irgendeine idee was ich falsch mache wenn sowohl bei event.getX/Y als auch bei event.getPoint() immer nur 0 kommt ?

    [java]
    public int positionX;
    public int positionY;
    public Point p = new Point();

    private final void FileMenu_LevelPlayer(){

    final JFileChooser fcLevelPlayer = new JFileChooser("C:");
    fcLevelPlayer.setDialogTitle("Please Select File Levelplayer");
    fcLevelPlayer.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

    fcLevelPlayer.addMouseListener(new MouseAdapter(){

    public void mousePressed(MouseEvent event){

    Point p = event.getPoint();
    positionX = event.getX();
    positionY = event.getY();
    }
    });

    int returnValChar = fcLevelPlayer.showOpenDialog(this);
    if(returnValChar == JFileChooser.OPEN_DIALOG){

    System.out.println(positionX + " " + positionY + " " + p.x + " " + p.y );
    }
    ....
    ....
    }
    [/code]

    nach der ganzen button sache und dem öffnen lass ich dann über println die werte ausgeben, alles 0,0,0,0 und ich hab kein plan warum.

    pain

    [ Dieser Beitrag wurde am 09.01.2003 um 12:04 Uhr von pain_md editiert. ]



  • Was ist fcLevelPlayer und warum schreibst Du nochmal Point p innerhalb des Eventhandlers?



  • schau dir nochmal mein code oben an, hab ihn verkomplettiert.
    point hab ich nur sozusagen als dummy drin. weiss ich ob mit getX/Y alles geht.nur deswegen. aber wie gesagt überall 0. vielleicht findest du mein fehler
    danke für die hilfe

    pain



  • So leid es mir tut aber ich glaube nicht, dass man wirklich einen Event gefeuert bekommt wenn man für einen JFileChooser einen Listener definiert ... da musste dir was anderes einfallen lassen ...



  • Und warum wird das nicht gefeuert?



  • ja, aber was ??? *verzweifel*



  • Original erstellt von <ROL(Turbatus)>:
    Und warum wird das nicht gefeuert?

    Weil der FileChooser ein komplexes Gebilde mit mehreren Panels und Buttons ist. Ein Listener deckt immer nur eine Komponente ab.



  • ich hab ne lösung.
    JFileChooser wird immer zentriert im mainWidget dargestellt. mit mainWidget (also meist this.) kann man dann direkt X und Y abfragen.
    also: int i=this.getX();

    so denn

    pain


Anmelden zum Antworten