jList czy da się zmienić kolor czcionki konkretnego elmentu na liście??

0

Witam jak w temacie.

0

setForeground(Color c)?(ale to chyba będzie dla wszystkich)

1

Musisz napisać klasę implementującą interfejs ListCellRenderer, albo rozszerzyć DefaultListCellRenderer.
Potem ustawiasz nowego renderera dla listy (setCellRenderer(new MyCellRenderer()))
http://download.oracle.com/javase/6/docs/api/javax/swing/ListCellRenderer.html

1

a tu przykład...

 
public class Main extends DefaultListCellRenderer {
    int indx = 0;
    public Main(int in) {
        this.indx=in;
    }
    @Override
    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        setText(value.toString());
        if (index  == indx) setBackground(Color.RED);
        else setBackground(Color.white);
        return this;

    }
    public static void main(String[] args) {
        JFrame fr = new JFrame("JList");
        JList list = new JList(new Object[]{"a", "b", "c", "d"});
        list.setCellRenderer(new Main(0));
        fr.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        fr.add(list);
        fr.setSize(100,100);
        fr.setVisible(true);
    }
}
0

Ten przykład ostatni zmienia tło pod elementem w liście. Ja pytałem czy możliwa jest zmiana koloru czcionki.

2

Jest możliwa, użyj mózgu i zmień troszkę kod @remigio.

0

"bo" ale jesteś pomocny normalnie szok, jak nie wiesz jak coś zrobić to się nie wypowiadaj w moim temacie a muzgu to się sam naucz używać.

0

remi@ dzięki wielkie za pomoc kod po kosmetycznej modyfikacji wygląda następująco:

import java.awt.Color;
import java.awt.Component;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JList;

public class kolorowanie extends DefaultListCellRenderer {
int indx = 0;
public kolorowanie(int in) {
this.indx=in;
}
@Override
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
setText(value.toString());
if (index == indx) setForeground(Color.RED);
else setForeground(Color.BLACK);
return this;

}

}

0

@remigio napisał

setForeground(Color c)?(ale to chyba będzie dla wszystkich)

dał też przykład kodu

   if (index  == indx) setBackground(Color.RED);
   else setBackground(Color.white);

A Ty się żalisz, że to zmienia kolor tła i nie wiesz jak zmienić kolor napisu. Kompromitacja.
Btw, co to jest muzg?

0

Nie napisałem, że nie wiem tylko stwierdziłem fakt, że kod który podał zmienia tło a nie kolor tekstu. Zrobiłem to dlatego, że jak ktoś trafi na ten temat i zobaczy o mam kod, który zmienia kolor czcionki wklei go sobie i się będzie zastanawiał dlaczego tak jest. A ty "bo" jak masz jakiś problem to idź z przyjacielem porozmawiaj a nie na forum programistycznym pisz.

2

Nisko oceniasz użytkowników forum (być może biorąc siebie za wzór). Myślisz, że ktoś widząc kod setBackground(...) pomyśli, że on zmienia kolor czcionki? Pogódź się z tym, że dałeś d**y i nie szukaj dla siebie usprawiedliwień.

0

Ojjj faktycznie dałem, dałem posypuję głowę popiołem.

0

Borze, co za idiota...

0

Zdajesz sobie sprawę z tego, że teraz za takie słowa na forach internetowych można sprawę sądową wytoczyć??

1

Bo obraził Boga pisząc "Borze" zamiast "Boże".

2

Ten świat jest chory, głupim można być bezkarnie, ale powiedzieć o kimś, że jest głupi, już nie.

1
przewa napisał(a)

Zdajesz sobie sprawę z tego, że teraz za takie słowa na forach internetowych można sprawę sądową wytoczyć??
to wytocz

1 użytkowników online, w tym zalogowanych: 0, gości: 1