Hallo,
ich habe heut einiges gelesen über das Setzen einer Textfarbe in der JTable.
es soll wohl möglich sein, mit Hilfe einer Unterklasse "DefaultTableCellRenderer" Farbwerde in den jeweiligen Cellen oder dessen Text zu verändern.
Dazu habe ich mir auch eine Renderer-Klasse angelegt die von der DefaultTableCellRenderer erbt.
JTable Erstellung unter Einbindung eines Table-Models und des Renderers
Nun habe ich nach langem Googeln nicht so wirklich verstehen können, wie ich mit Hilfe meiner MyTableCellRenderer-Klasse einen Text, in einer bestimmten Spalte, meiner Tabelle, ändern kann.
Ich hab mir dann einen Code aus einem anderen Forum abgeschaut, mit dem ich das bewerkstelligen kann. S. nachfolgenden Code.
Hat jemand eine Idee, wie ich das nun in meine MyTableCellRenderer-Klasse implementieren kann?
Ich freu mich wie immer über jede Hilfestellung. LG!
ich habe heut einiges gelesen über das Setzen einer Textfarbe in der JTable.
es soll wohl möglich sein, mit Hilfe einer Unterklasse "DefaultTableCellRenderer" Farbwerde in den jeweiligen Cellen oder dessen Text zu verändern.
Dazu habe ich mir auch eine Renderer-Klasse angelegt die von der DefaultTableCellRenderer erbt.
Java:
public class MyTableCellRenderer extends DefaultTableCellRenderer{
public MyTableCellRenderer(){}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus,
int row, int column){
//super.getTableCellRendererComponent( table, value, isSelected, hasFocus, row, column );
[...] // Setze einen Farbwert
return //Component;
}
}
JTable Erstellung unter Einbindung eines Table-Models und des Renderers
Java:
public class View{
[...]
//************ Table ************
myTableModel = new MyTableModel();
tableT = new JTable(myTableModel);
tableT.getModel();
tableT.setFont(new Font("Arial", Font.PLAIN, 13));
tableT.setDefaultRenderer(Object.class, new MyTableCellRenderer());
[...]
}
Nun habe ich nach langem Googeln nicht so wirklich verstehen können, wie ich mit Hilfe meiner MyTableCellRenderer-Klasse einen Text, in einer bestimmten Spalte, meiner Tabelle, ändern kann.
Ich hab mir dann einen Code aus einem anderen Forum abgeschaut, mit dem ich das bewerkstelligen kann. S. nachfolgenden Code.
Java:
[...]
tableT = new JTable(myTableModel){
@Override
public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
Component c = super.prepareRenderer(renderer, row, column);
if (!isRowSelected(row)) {
if(column==9) c.setForeground(Color.BLUE);
else c.setForeground(Color.BLACK);
}
return c;
}
};
[...]
Hat jemand eine Idee, wie ich das nun in meine MyTableCellRenderer-Klasse implementieren kann?
Ich freu mich wie immer über jede Hilfestellung. LG!