Leider bietet Swing keine integrierte Unterstützung für Hinweise in der Statuszeile an, doch ist es nicht schwierig, diese selbst zu implementieren. Im Grunde muss man nur einen MouseListener für jede Komponente, die einen Hinweis anzeigen soll, registrieren und dann die Methoden mouseEntered und mouseExited der MouseListener-Schnittstelle implementieren.
Die Methode mouseEntered zeigt den Hinweis für die jeweilige Komponente an, während die Methode mouseExited diesen wieder entfernt. Die Ereignisquelle kann dazu verwendet werden, die Komponente zu identifizieren und den anzuzeigenden Hinweis auszuwählen, wodurch es nicht erforderlich ist, für jede einzelne Komponente einen anderen MouseListener zu registrieren.
MouseOverHintManager (Listing A) ist eine wieder verwertbare Klasse, die Hinweise in der Statuszeile implementiert. Ihr Einsatz ist unkompliziert und erfordert lediglich Konstruktion einer MouseOverHintManager-Instanz durch Übergabe einer JLabel-Instanz, die zur Anzeige des Hinweises verwendet wird, Aufruf der Methode addHintFor für jede Komponente, der ein Hinweis zugewiesen werden soll, Aufruf der Methode enableHints für den obersten Container der Benutzeroberfläche (Fenster, Frame, Dialogbox etc.).
Die MouseOverHintManager-Implementierung lehnt sich stark an die zuvor angeführten Schritte an. Die Methode addHintFor erhält als Parameter einen Verweis auf die Komponente und dessen entsprechenden Hinweis und speichert diese in einer Map für den späteren Abruf. Zu beachten ist, dass Hinweise in einer Instanz von WeakHashMap gespeichert werden und so der Speicher bei Bedarf automatisch bereinigt wird, wenn keine weiteren Verweise auf die jeweilige Komponente bestehen. Aus diesem Grund erübrigt sich eine Methode zur Entfernung von Hinweisen.
Die Methode enableHints fügt allen Komponenten, Subkomponenten, Menüelementen etc. des als Parameter übergebenen obersten Containers den MouseOverHintManager als MouseListener hinzu.
Die Methode mouseEntered verwendet die Ereignisquelle, also die Komponente, die der Mauszeiger betreten hat, als Schlüssel zum Abruf des Hinweises aus der Map und zeigt diesen am JLabel an, der vom Konstruktor gespeichert ist. Die Methode mouseExited löscht den Hinweis einfach, indem sie den JLabel auf leer setzt.
Nutzung einer unternehmenseigenen GPT-Umgebung für sicheren und datenschutzkonformen Zugriff.
Der Umsatz steigt um 15 Prozent, der Nettogewinn um 57 Prozent. Im nachbörslichen Handel kassiert…
Aus 61,9 Milliarden Dollar generiert das Unternehmen einen Nettoprofit von 21,9 Milliarden Dollar. Das größte…
Mehr Digitalisierung wird von den Unternehmen gefordert. Für KMU ist die Umsetzung jedoch nicht trivial,…
Der Nettoprofi wächst um 117 Prozent. Auch beim Umsatz erzielt die Facebook-Mutter ein deutliches Plus.…
Vom Standpunkt eines Verbrauchers aus betrachtet, stellt sich die Frage: Wie relevant und persönlich sind…