Pourquoi l'arrière-plan de l'élément sélectionné ne change pas? Je sais sûrement que j'appuie sur un élément de la liste parce que mon System.out.println indique ma sélection actuelle et l'identifiant de l'élément sélectionné. Pas d'erreur, rien ne fonctionne pas. Pourquoi ?La couleur d'arrière-plan de l'élément sélectionné dans JList ne fonctionne pas
Object[] tablen = sqltable.toArray();
JList list;
list = new JList(tablen);
list.addListSelectionListener(new ListSelectionListener(){
@Override
public void valueChanged(ListSelectionEvent e) {
int idx = list.getSelectedIndex();
setOpaque(true);
if (idx != -1){
//list.setSelectionBackground(Color.lightGray);
// list.setSelectionForeground(Color.lightGray);
setForeground(Color.red);
setBackground(Color.BLUE);
setBackground(list.getSelectionBackground());
setForeground(list.getSelectionForeground());
System.out.println("Current selection: " + tablen[idx]);
}else{
setForeground(Color.red);
setBackground(Color.BLUE);
setBackground(list.getBackground());
setForeground(list.getForeground());
System.out.println("Please choose a language.");
}
}
});
list.setCellRenderer(new ListCellRenderer() {
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
String[] val = (String[]) value;
return new JLabel(val[0]);
}
});
nop j'ai essayé cela et je ne peux pas retourner c dans mon moteur de rendu cellulaire parce que si je fais cela je vais perdre JLabler retour –
aussi essayer de lire la question avant de le marquer comme doublon, ne pas regarder le titre comme donné –