- Welche Vorteile haben die Swing-Adapterklassen im Vergleich zu den Schnittstellen die Sie implementieren?
- Wann haben die Adapterklassen im Vergleich zu den Schnittstellen keine Vorteile für den Entwickler?
Die Antwort finden Sie hinter der nächsten Frage (URL rechts unten klicken).
| Niveau | 2 | 
| Schwierigkeitsgrad | mittel | 
| Zeit | 2+2 Minuten | 
Antwort zu Frage 7: Swing, Implementieren einer Adapterklasse
In der folgenden Klasse wird für das JLabel text1 eine innere Klasse MyMouseListener implementiert die auf 2 Ereignisse mit Konsolenausgaben reagiert:
- Maus kommt über Komponente
- Maus verlässt die Komponente
Hierzu wird die Schnittstelle MouseListener implementiert.
Aufgabe:
- Implementieren Sie eine gleichwertige innere Klasse MyMouseAdapter für das JLabel text2.
- Spezialisieren Sie hierzu die abstrakte Klasse Swingklasse MouseAdapter die MouseListener implemeniert
- Die neue Klasse soll die gleichen Ereignisse gleich behandeln(Kopieren Sie den Methodenrumpf)
package Kurs2.K2012;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JLabel;
public class ListenerToAdapter {
   public class MyMouseListener implements MouseListener {
      public void mouseClicked(MouseEvent e) {}
      public void mouseExited(MouseEvent e)
         { System.out.println("raus");}
      public void mouseEntered(MouseEvent e)
         { System.out.println("rein");}
      public void mousePressed(MouseEvent e) {}
      public void mouseReleased(MouseEvent e){}
      }
   public class MyMouseAdapter extends MouseAdapter // Ab hier implementieren...
      public void mouseExited(MouseEvent e) 
            { System.out.println("raus");}
      public void mouseEntered(MouseEvent e)
            { System.out.println("rein");}
     // Ende der Implementierung
   } //Ende Klasse MyMouseAdapter
   public ListenerToAdapter() {
      JLabel text1 = new JLabel("Label 2");
      text1.addMouseListener(new MyMouseListener());
      JLabel text2 = new JLabel("Label 2");
text2.addMouseListener(new MyMouseAdapter());
    }
}
- Printer-friendly version
- Log in to post comments
- 4964 views
public class MyMouseAdapter
Muss die Klasse MyMouseAdapter nicht von MouseAdapter erben, um die genutzten Methoden "mouseExited" und "mouseEntered" überschreiben zu können? Also: public class MyMouseAdapter extends MouseAdapter { ... } .
Stimmt!
Danke. Wurde korrigiert.