2009-10-16 6 views

risposta

19

qualcosa come il seguente dovrebbe aiutare come punto di partenza:

public class SelectedListCellRenderer extends DefaultListCellRenderer { 
    @Override 
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { 
     Component c = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); 
     if (isSelected) { 
      c.setBackground(Color.RED); 
     } 
     return c; 
    } 
} 
// During the JList initialisation... 
jlist1.setCellRenderer(new SelectedListCellRenderer()); 
0

Se ho capito bene, controlla javax.swing.ListCellRenderer. È necessario reimplementarlo o estendere javax.swing.DefaultListCellRenderer e personalizzare il metodo getListCellRendererComponent.

1

Un modo più semplice sarebbe quella di andare alla modalità di progettazione in Eclipse, e nelle proprietà del JList, fai clic sul pulsante che ha due piccole frecce con una grande freccia gialla in mezzo per aprire "mostra proprietà avanzate". quindi scorrere verso il basso e cambiare il colore in cui dice "selectionBackground" e cambiare il colore lì (sarà probabilmente grigio, ma cambierà comunque). Ora, quando esegui il tuo programma, qualunque cosa tu selezioni, lo sfondo sarà quel colore.

1
jList1.setSelectedIndex(currentLine); 
jList1.setSelectionBackground(Color.red); 

Basta impostare l'indice selezionato di tutti gli elementi che si desidera colorare in un ciclo e cambiare il colore di conseguenza!

Problemi correlati