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.
Mit dem Internet verbundene Digitale Bilderrahmen oder Mediaplayer können mit Schadsoftware infiziert werden und sind…
Schädliche Apps können unter Umständen einen Systemabsturz auslösen. Mindestens eine Anfälligkeit erlaubt eine Remotecodeausführung.
Sein Anteil an allen Infektionen steigt in Deutschland auf 18,5 Prozent. Das Botnet Androxgh0st integriert…
Betroffen sind Chrome 131 und früher für Windows, macOS und Linux. Angreifer können unter Umständen…
Marktforscher Lündendonk erwartet für das Jahr 2025 ein durchschnittliches Umsatzwachstum von 14,9 Prozent.
Alarmierender Anstieg von Open-Source-Malware / Seit 2019 haben Sonatype-Analysen mehr als 778.500 bösartige Pakete aufgedeckt