La couleur d'arrière-plan de l'élément sélectionné dans un JCOMBOBOX UNEDITItable est une sorte de bleu: p>
p>
Y a-t-il un moyen de faire une couleur différente, telle que le blanc, par exemple? p>
4 Réponses :
Avez-vous essayé d'écrire votre propre, personnalisé, Lorsque cette méthode est invitée à fournir un composant de rendu cellulaire, vous obtenez les arguments suivants: p> listcellrenderer code>?
public Component getListCellRendererComponent(JList list,
Object value,
int index,
boolean isSelected,
boolean cellHasFocus) {
Utilisez le code AIOOB fourni et simplement lancer une valeur de jlabel et définissez son arrière-plan sur la couleur souhaitée.
Oui, j'ai essayé ça. Cela peut changer l'apparence des éléments de menu comme vous les voyez dans la zone déroulante. Cependant, cela ne change pas l'apparence de l'élément sélectionné.
L'arrière-plan attribué par le rendu est remplacé par la couleur de fond de sélection de la jlist utilisé dans la fenêtre contextuelle de la liste déroulante. Découvrez la méthode "PaintCurrentValue" de la classe BasicComboboxui. La solution de contournement serait donc:
JComboBox comboBox = new JComboBox(...); Object child = comboBox.getAccessibleContext().getAccessibleChild(0); BasicComboPopup popup = (BasicComboPopup)child; JList list = popup.getList(); list.setSelectionBackground(Color.RED);
Cela devrait fonctionner
jComboBox1.setRenderer(new DefaultListCellRenderer() { @Override public void paint(Graphics g) { setBackground(Color.WHITE); setForeground(Color.BLACK); super.paint(g); } });
Cela ne fonctionne que si vous n'avez pas besoin de remplacer la méthode GetListCellrendererComponent de CellRenderer. Si vous devez le faire, utilisez le SEstelectionbackground, comme s'il était affiché dans la réponse de Camickr.
Cela fonctionne pour moi:
myComboBox.setBackground(Color.RED); myComboBox.repaint();
S'il vous plaît essayez de donner une explication appropriée de la réponse.
Liés, éventuellement en double, ne peut pas décider: Stackoverflow.com / Questions / 10258224 / ...