Bessere Java-GUIs durch Hinweise in der Statuszeile

Zu erwähnen sind paar kleine Tricks, die dafür sorgen, dass Hinweise auch wie erwartet angezeigt werden. Erstens ist zu beachten, dass die Methode mouseEntered den Hinweis für die Komponente holt, die das Ereignis ausgelöst hat. Wenn für diese Komponente kein Hinweis besteht, überprüft mouseEntered, ob für dessen übergeordnete Komponente ein Hinweis besteht.

Dieser Vorgang wiederholt sich, bis die höchste Komponente erreicht oder ein Hinweis gefunden wird, der dem Anwender dann angezeigt wird. Diese Logik ermöglicht es, einen Hinweis für einen Container zu setzen – wie ein Panel – und denselben Hinweis bei allen untergeordneten Elementen anzeigen zu lassen. Auch kann man einen Hinweis für das übergeordnete Element und einen anderen für das untergeordnete Element setzen.

Ein weiterer Kniff ist die Methode getHintFor, die mit mouseEntered aufgerufen wird und einen Hinweis für eine Komponente holt. Wenn die als Parameter erhaltene Komponente keinen Hinweis enthält, erfolgt eine Prüfung auf besondere Fälle. Handelt es sich um eine JLabel– oder eine JTableHeader-Komponente, gibt die Methode den Hinweis der Komponente zurück, mit der JLabel beziehungsweise JTable verbunden ist. So muss ein Hinweis nicht zweimal für eine Komponente und dann wiederum für deren Label gesetzt werden, obwohl sie als getrennte Komponenten angezeigt werden.

Hinweise in der Praxis

MouseOverHintDemo (Listing B) ist ein einfaches Beispiel, das die Verwendung der Klasse MouseOverHintManager veranschaulicht. Hier wird einfach ein JFrame mit einer Statuszeile zur Anzeige der Hinweise und mancher der am häufigsten verwendeten Swing-Komponenten erstellt.

Das Beispiel ist unkompliziert: Es erstellt lediglich alle Komponenten der Benutzeroberfläche, weist diesen Hinweise zu, generiert das Hauptfenster der Applikation und ruft MouseOverHintManager.enableHints auf. Wichtig ist zu beachten, dass enableHints zuletzt, nach der Generierung der Benutzeroberfläche aufgerufen wird, so dass enableHints MouseListener für alle Komponenten registrieren kann. Dies ist erforderlich, damit MouseOverHintManager Mausereignisse von allen Komponenten erhalten und den jeweils angebrachten Hinweis auswählen kann.

Die Ausführung des Beispiels erzeugt ein einfaches Fenster mit mehreren Elementen. Wird die Maus über die Komponenten und Menüelemente bewegt, wird jeweils ein Hinweis in der Statuszeile der Applikation angezeigt. Beide Optionsfelder zeigen, wie man sieht, denselben Hinweis an. Dieser wurde übrigens auf dem ihnen übergeordneten Panel gesetzt.

Hinweise sind eine wichtige Methode um Applikationen benutzerfreundlicher zu gestalten. Statuszeilenhinweise stellen eine Alternative zu Swing-Tooltips dar und lassen sich problemlos implementieren.

Page: 1 2 3

ZDNet.de Redaktion

Recent Posts

Google: Passkeys schützen mehr als 400 Millionen Google-Konten

Die Passwort-Alternative Passkeys überholt Einmalpasswörter bei der Zwei-Faktor-Authentifizierung. Auch Microsoft setzt sich aktiv für die…

6 Tagen ago

Infostealer: 53 Prozent der Angriffe treffen Unternehmensrechner

Der Anteil steigt seit 2020 um 34 Prozentpunkte. Allein 2023 erfasst Kaspersky rund 10 Millionen…

6 Tagen ago

Salesforce: Mit Einstein GPT zurück auf die Überholspur?

Salesforce forciert den Ausbau seiner Industry Clouds. Mit ihrem Prozesswissen könnten deutsche IT-Dienstleister davon profitieren.

7 Tagen ago

Neue Backdoor: Bedrohung durch Malvertising-Kampagne mit MadMxShell

Bisher unbekannter Bedrohungsakteur versucht über gefälschte IP Scanner Software-Domänen Zugriff auf IT-Umgebungen zu erlangen.

1 Woche ago

BSI-Studie: Wie KI die Bedrohungslandschaft verändert

Der Bericht zeigt bereits nutzbare Angriffsanwendungen und bewertet die Risiken, die davon ausgehen.

1 Woche ago

KI-Wandel: Welche Berufe sich am stärksten verändern

Deutsche sehen Finanzwesen und IT im Zentrum der KI-Transformation. Justiz und Militär hingegen werden deutlich…

1 Woche ago