2010-07-17 13 views
0

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

+1

Mais Javadoc> SO! –

+1

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

+2

vous devez apprendre à ne pas être si "impuissant" .Mais cela ou vous devez rester à l'écart du développement de logiciels –

Répondre

5

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. 
    } 
} 
0

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.

+0

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

+2

Ajoutez cela à votre question alors :) – Eric

+0

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

-1

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.

+0

La réponse n'est plus correcte puisque la question a été modifiée. –