Frage

Wie kann ich die Hintergrundfarbe des Elements ändern, die dynamisch in JList ausgewählt wird?

War es hilfreich?

Lösung

So etwas wie die folgenden soll als Ausgangspunkt helfen:

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());

Andere Tipps

Ein einfacherer Weg Modus in Eclipse zu entwerfen gehen würde, und in den Eigenschaften Ihres JList, klicken Sie auf die Schaltfläche, die zwei kleine Pfeile mit einem großen gelben Pfeil dazwischen hat zu öffnen „erweiterten Eigenschaften zeigen.“ dann nach unten scrollen und die Farbe ändern, wo es heißt „selectionBackground“ und die Farbe dort ändern (es wahrscheinlich grau sein wird, aber es wird immer noch ändern). Nun, wenn Sie Ihr Programm ausführen, was auch immer Sie wählen, wird der Hintergrund, dass Farbe.

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

Just Set Ausgewählte Index aller Artikel, die Sie dementsprechend die Farbe in einer Schleife und ändern färben möchten!

Wenn ich deutlich zeigen Ihnen bin verstehen, schauen Sie in javax.swing.ListCellRenderer. Sie müssen es neu implementieren oder javax.swing.DefaultListCellRenderer zu erweitern und die getListCellRendererComponent Methode anpassen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top