Vous devez être membre et vous identifier pour publier un article.
Les visiteurs peuvent toutefois commenter chaque article par une réponse.
[Swing] Tooltip sur les éléments d’un JComboBox
Article publié le 20/10/2008 13:56:15Pour placer un ToolTip sur chaque élément d’une boîte de sélection (JComboBox), nous allons passer par un Renderer.
Quand nous désirons sélectionner un élément d’un JComboBox, ce dernier utilise une JList pour afficher les choix.
A l’aide d’un renderer, nous pouvons spécifier comment afficher chaque cellule de la liste, et par la même occasion afficher une bulle d’aide (ToolTip).
Le renderer
Code Java (46 lignes)
import java.awt.Component; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.ListCellRenderer; import javax.swing.ToolTipManager; import eu.mil.meat.domain.generic.Catalog; import eu.mil.meat.domain.generic.LogicalDeletionOnly; public CatalogComboBoxRenderer() { setOpaque(true); setHorizontalAlignment(LEFT); setVerticalAlignment(CENTER); } boolean cellHasFocus) { if (value == null) { setText(""); } else { String text = "‹html›‹body›" + value.toString() + "‹/body›‹/html›"; if (value instanceof Catalog) { Catalog item = (Catalog) value; String toolTip = "‹html›‹body› ‹b›" + item.getCode() + "‹/b› ‹i›" + description + "‹/i› ‹/body›‹/html›"; setToolTipText(toolTip); // forces tooltip staying on top list.setOpaque(true); } if (value instanceof LogicalDeletionOnly) { LogicalDeletionOnly item = (LogicalDeletionOnly)value; text = item.isInUse() ? text : "‹html›‹strike›" + item + "‹/strike›‹/html›"; } setText(text); } setBackground( isSelected ? list.getSelectionBackground() : list.getBackground()); setForeground(isSelected ? list.getSelectionForeground() : list.getForeground()); return this; } }
Application
Nous pouvons décorer le JComboBox de la manière suivante :
Code Java (1 ligne)
myComboBox.setRenderer(new CatalogComboBoxRenderer());
Le ToolTip du JComboBox s’affiche en dessous de la JListe
Pour pallier à ce problème, nous utilisons la ligne suivante :
Code Java (1 ligne)
Un article de Steph
Source : indéterminée
Deutsche Übersetzung
Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.
Vielen Dank im Voraus.
Dokument erstellt 13/09/2004, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/ast-rf-444.html
Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.