Comment modifier la couleur d'arrière-plan d'un élément Java AWT List? Je veux dire par là un seul élément d'une liste AWT, pas tout.Ensemble de listes Java Arrière-plan de l'élément de liste
Répondre
Vous aurez besoin d'un moteur de rendu personnalisé. C'est, si vous utilisez Swing. Il est préférable de s'en tenir aux composants Swing et non aux composants awt gui.
JList
...
setCellRenderer(new MyCellRenderer());
...
class MyCellRenderer extends DefaultListCellRenderer
{
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus)
{
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
Color bg = <calculated color based on value>;
setBackground(bg);
setOpaque(true); // otherwise, it's transparent
return this; // DefaultListCellRenderer derived from JLabel, DefaultListCellRenderer.getListCellRendererComponent returns this as well.
}
}
Puisque Java AWT List hérite de Component, utilisez la méthode setBackground (Color c) de Component.
List coloredList = new List(4, false);
Color c = new Color(Color.green);
coloredList.add("Hello World")
coloredList.setBackground(c);
La liste est maintenant de couleur verte.
Cela ferait toute la liste. Je souhaite que l'arrière-plan de l'élément de liste à double-clic ne change pas toute la liste. – nn2
Ajoutez cela à votre question alors :) – Eric
Oui, maintenant j'essaye de comprendre comment placer les rangées d'une liste parce que la nouvelle liste (4, faux); ne fonctionne pas: P haha woo! – nn2
Cela fait un moment que j'ai travaillé avec AWT, mais ne pouvez-vous pas utiliser setBackground (Color)? List est une sous-classe de java.awt.Component.
La réponse n'est plus correcte puisque la question a été modifiée. –
Mais Javadoc> SO! –
Touche, mais j'ai regardé et je suis sur un impuissant comme un homme court qui essaie de sauter par-dessus un bâtiment: ( – nn2
vous devez apprendre à ne pas être si "impuissant" .Mais cela ou vous devez rester à l'écart du développement de logiciels –