Matthias Bode: "Fenster" neben der Maus

Hallo zusammen!
Ich suche so etwas wie einen kleines Fenster in Java, das immer rechts neben der Maus platziert ist, um darin die momentanen Koordinaten anzuzeigen. Womit macht man das?
Schlagwort wäre gut, den Rest kann man dann "ergooglen", nur braucht man ja erst mal einen Anfang.

Vielen Dank im Voraus
Matthias

  1. Hallo,

    Ich suche so etwas wie einen kleines Fenster in Java, das immer rechts neben der Maus platziert ist, um darin die momentanen Koordinaten anzuzeigen. Womit macht man das?
    Schlagwort wäre gut, den Rest kann man dann "ergooglen", nur braucht man ja erst mal einen Anfang.

    Ein "kleines Fenster ..., das immer rechts neben der Maus platziert ist" ist ein ToolTip. Wenn es Dich nicht stört, dass man auf den zunächst ein wenig warten muss, kannst Du in dem auch die Mauskoordinaten anzeigen lassen. Ich habe mal http://java.sun.com/docs/books/tutorial/uiswing/events/examples/MouseMotionEventDemo.java aus How to Write a Mouse-Motion Listener entsprechend zusammengekürzt und abgeändert:

      
    import javax.swing.*;  
    import java.awt.Dimension;  
    import java.awt.event.MouseMotionListener;  
    import java.awt.event.MouseEvent;  
      
    public class MouseMotionEventDemo extends JPanel implements MouseMotionListener {  
      
        public MouseMotionEventDemo() {  
            addMouseMotionListener(this);  
            setPreferredSize(new Dimension(450, 450));  
        }  
      
        public void mouseMoved(MouseEvent e) {  
           this.setToolTipText("X:" + e.getX() + ", Y:" + e.getY());  
        }  
      
        public void mouseDragged(MouseEvent e) {  
           //on mouseDragged there is no ToolTip  
        }  
      
        /**  
         * Create the GUI and show it.  For thread safety,  
         * this method should be invoked from the  
         * event-dispatching thread.  
         */  
        private static void createAndShowGUI() {  
            //Create and set up the window.  
            JFrame frame = new JFrame("MouseMotionEventDemo");  
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
      
            //Create and set up the content pane.  
            JComponent newContentPane = new MouseMotionEventDemo();  
            newContentPane.setOpaque(true); //content panes must be opaque  
            frame.setContentPane(newContentPane);  
      
            //Display the window.  
            frame.pack();  
            frame.setVisible(true);  
        }  
      
        public static void main(String[] args) {  
            //Schedule a job for the event-dispatching thread:  
            //creating and showing this application's GUI.  
            javax.swing.SwingUtilities.invokeLater(new Runnable() {  
                public void run() {  
                    createAndShowGUI();  
                }  
            });  
        }  
    }  
    
    

    Sollte Dich das nicht zufrieden stellen, könntest Du auch ein JComponent, welches Text darstellen kann z.B. ein JLabel, auf der Pane, über der die Maus beobachtet werden soll, immer wieder neu absolut positionieren. Siehe hierzu Doing Without a Layout Manager (Absolute Positioning).

    viele Grüße

    Axel