Wie kann man Tooltips konfigurieren?
ToolTipManager
ist ein Singleton
das mit sharedInstance()
instanziert wird
und dessen Eigenschaften somit anwendungsweite
Gültigkeit besitzen.
Das Beispiel demonstriert
die Anwendung von vier Methoden der Klasse.
setInitialDelay() | Bestimmt die Zeit in Millisekunden, zwischen der Registrierung der Tooltip-Aktivierung, also üblicherweise dem Überfahren der mit einem Tooltip versehenen Komponente, und der Erscheinung des Tooltips. |
setDismissDelay() | Setzt die Zeitspanne zwischen dem Erscheinen und dem selbstständigen Schließen des Tooltips. |
setReshowDelay() | Wird eine Komponente, deren Tooltip aktiviert wurde, während der Anzeige mit der Maus verlassen und sofort wieder besucht, so wird der Tooltip ebenfalls sofort wieder angezeigt. Ein initial delay wird nicht eingehalten. Die Methode legt die Zeit in Millisekunden fest, die vergehen muss, bis bei neuerlicher Aktivierung eines Tooltips der durch initial delay definierte Zeitraum wieder eingehalten wird. |
unregisterComponent() | Meldet eine Komponente von der Tooltip-Anzeige (und nicht nur von den Einstellungen des Managers) ab. |
import java.awt.GridLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.ToolTipManager; public class TooltipKonfigurieren { public TooltipKonfigurieren() { init(); } private void init() { JPanel panel = new JPanel(new GridLayout(2, 2, 25, 25)); JLabel einsL = new JLabel("Brough Superior"); einsL.setToolTipText(getTT(1)); JLabel zweiL = new JLabel("Vincent"); zweiL.setToolTipText(getTT(2)); JLabel dreiL = new JLabel("A.J.S."); dreiL.setToolTipText(getTT(3)); JLabel vierL = new JLabel("Norton"); vierL.setToolTipText(getTT(4)); ToolTipManager ttm = ToolTipManager.sharedInstance(); ttm.setInitialDelay(3000); ttm.setDismissDelay(10000); ttm.setReshowDelay(2000); ttm.unregisterComponent(dreiL); panel.add(einsL); panel.add(zweiL); panel.add(dreiL); panel.add(vierL); JFrame frame = new JFrame(); frame.add(panel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setTitle("Tooltip konfigurieren"); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } private String getTT(int tt) { switch (tt) { case 1: return "<html> <h1>Modelle</h1> <ul> <li>SS80</li> <li>SS100</li> <li>Dream</li> </ul> </html>"; case 2: return "1928 - 1955"; case 3: return "Albert John Stevens"; case 4: return "<html> <img src='"+ getClass().getResource("/img/Norton_Manx_200.png") + "'> </html>"; default: return ""; } } public static void main(String[] args) { SwingUtilities.invokeLater(() -> new TooltipKonfigurieren()); } }
Das Beispiel zeigt einen JFrame
mit vier JLabel
,
die jeweils einen Tooltip zugewiesen bekommen. Dies
kann, wie hier demonstriert, auch als HTML-Text
geschehen.
Nach Erzeugen des ToolTipManager
werden
durch die o.a. Methoden der inititial delay,
der dismiss delay und der reshow delay
gesetzt. Zur Demonstration wird dem dritten Label zudem
die Tooltipanzeige wieder durch unregisterComponent()
entzogen.
Wenn Ihnen javabeginners.de gefällt, freue ich mich über eine Spende an diese gemeinnützigen Organisationen.