Eric Norbert Falbe: Mausklicks-und-Mausbewegungen

Zu einem funktionierenden Code habe ich bei den Methoden "mouse pressed" und "mouse clicked" eine Stringausgabe eingefuegt. Aber ich bekomme keine Anzeige der Texte. Was mache ich falsch?

  
import java.awt.*;  
import java.awt.event.*;  
  
public class TwoListener2 implements MouseMotionListener,  
                                    MouseListener {  
   private Frame f;  
   private TextField tf;  
  
   public TwoListener2() {  
      f = new Frame("Two listeners example");  
      tf = new TextField(30);  
   }  
  
   public void launchFrame() {  
      Label label = new Label("Click and drag the mouse");  
  
      // Hinzufügen der Komponenten zum Frame  
      f.add(label, BorderLayout.NORTH);  
      f.add(tf, BorderLayout.SOUTH);  
  
      // Hinzufügen der Listener  
      f.addMouseMotionListener(this);  
      f.addMouseListener(this);  
  
      f.setSize(300, 200);  
      f.setVisible(true);  
   }  
  
   // Implementieren der Methoden für den  
   // MouseMotionListeners und den MouseListener  
   public void mouseDragged(MouseEvent e) {  
      String s = "Mouse dragging:  X = " + e.getX()  
          + " Y = " + e.getY();  
  
      tf.setText(s);  
   }  
  
   public void mouseEntered(MouseEvent e) {  
      String s = "The mouse entered";  
  
      tf.setText(s);  
   }  
  
   public void mouseExited(MouseEvent e) {  
      String s = "The mouse has left the building";  
  
      tf.setText(s);  
   }  
  
   public void mouseMoved(MouseEvent e) {}  
  
   public void mousePressed(MouseEvent e) {  
      String s = "Mouse pressed:  X = " + e.getX()  
          + " Y = " + e.getY();  
  
      tf.setText(s);  
}  
  
   public void mouseClicked(MouseEvent e) {  
      String s = "Mouse Clicked:  X = " + e.getX()  
          + " Y = " + e.getY();  
  
      tf.setText(s);  
}  
  
   public void mouseReleased(MouseEvent e) {}  
  
   public static void main(String args[]) {  
      TwoListener two = new TwoListener();  
      two.launchFrame();  
   }  
}

Ich habe den original Code von folgender Seite:

http://www.teialehrbuch.de/Kostenlose-Kurse/JAVA/6725-Mausklicks-und-Mausbewegungen.html

  1. Hallo,

    Zu einem funktionierenden Code habe ich bei den Methoden "mouse pressed" und "mouse clicked" eine Stringausgabe eingefuegt. Aber ich bekomme keine Anzeige der Texte. Was mache ich falsch?

    ...

    public class TwoListener2 implements MouseMotionListener,
                                        MouseListener {

    ...

    public static void main(String args[]) {
          TwoListener two = new TwoListener();
          two.launchFrame();
       }
    }

    Dein Beispiel lässt sich ohne Beschreibung der Klasse "TwoListener" nicht compilieren, weil Du in der main-Methode ein Objekt "TwoListener" erzeugen willst, aber eine Klasse "TwoListener2" beschreibst.  
      
    Wenn es sich bei Dir compilieren lässt, hast Du die Klasse "TwoListener" irgendwo anders beschrieben, offensichtlich mit leeren mousePressed und mouseClicked Methoden. Objekte der Klasse TwoListener reagieren also nicht auf Mausklick.  
      
    In der main-Methode Deiner Klasse "TwoListener2" wird aber ein TwoListener-Objekt erzeugt und \_kein\_ TwoListener2-Objekt.  
      
    viele Grüße  
      
    Axel
    
    1. OK, ich habe jetzt ein TwoListener2-Objekt erzeugt und alles klappt.
      Danke Axel Richter!