Witam jak w temacie.
setForeground(Color c)?(ale to chyba będzie dla wszystkich)
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
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);
}
}
Ten przykład ostatni zmienia tło pod elementem w liście. Ja pytałem czy możliwa jest zmiana koloru czcionki.
Jest możliwa, użyj mózgu i zmień troszkę kod @remigio.
"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ć.
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;
}
}
@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?
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.
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ń.
Ojjj faktycznie dałem, dałem posypuję głowę popiołem.
Borze, co za idiota...
Zdajesz sobie sprawę z tego, że teraz za takie słowa na forach internetowych można sprawę sądową wytoczyć??
Bo obraził Boga pisząc "Borze" zamiast "Boże".
Ten świat jest chory, głupim można być bezkarnie, ale powiedzieć o kimś, że jest głupi, już nie.
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