Morgaine21
Grünschnabel
Hallo Leute,
ich weiß zu diesem Thema gibt es unglaublich viele Einträge, jedoch hab ich jetzt schon ziemlich viele durch und komme immer noch auf kein Ergebnis.
Nun zu meinem Problem:
Ich möchte die Schriftfarbe der Zellen meiner JTable je nach Text ändern. Hierfür habe ich folgenden Code verfasst:
Hier mein Modell:
Und der Teil des Hauptprogramms der relavant ist:
Ich hoffe wirklich, dass ihr mir helfen könnt und bedanke mich schon mal im Vorraus.
lg
Morgaine21
ich weiß zu diesem Thema gibt es unglaublich viele Einträge, jedoch hab ich jetzt schon ziemlich viele durch und komme immer noch auf kein Ergebnis.
Nun zu meinem Problem:
Ich möchte die Schriftfarbe der Zellen meiner JTable je nach Text ändern. Hierfür habe ich folgenden Code verfasst:
Code:
public class ScoreTableCellRender extends DefaultTableCellRenderer
{
private static final long serialVersionUID = 3503110144069061261L;
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
// TODO Auto-generated method stub
JLabel c = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
String s = value.toString();
if(s.equals("NB")){
c.setForeground(Color.GRAY);
c.setText((String) value);
}
else if(s.equals("NOK")){
c.setForeground(Color.ORANGE);
c.setText((String) value);
}
else if(s.equals("NNOK")){
c.setForeground(Color.RED);
c.setText((String) value);
}
else if(s.equals("OK")){
c.setForeground(Color.BLACK);
c.setText((String) value);
}
return c;
}
}
Hier mein Modell:
Code:
public class StatistikTabellenModell extends AbstractTableModel{
private static final long serialVersionUID = -2712404378541056977L;
private int ColumnCount = 1;
private int RowCount = 1;
private String[][] Values;
public StatistikTabellenModell(int c, int r)
{
ColumnCount = c;
RowCount = r + 1;
}
public int getColumnCount() {
// TODO Auto-generated method stub
return ColumnCount;
}
public int getRowCount() {
// TODO Auto-generated method stub
return RowCount;
}
public Object getValueAt(int rowIndex, int columnIndex) {
// TODO Auto-generated method stub
if(Values != null)
return Values[rowIndex][columnIndex];
else
return " ";
}
public void setColumnCount(int i){
ColumnCount = i;
Values = new String[RowCount+1][ColumnCount];
}
public void setRowCount(int i){
RowCount = i;
Values = new String[RowCount+1][ColumnCount];
}
public void setValue(String[] d, String[][] a)
{
Values = new String[RowCount+1][ColumnCount];
for(int i = 0; i < d.length; i++)
Values[0][i] = d[i];
for(int i = 0; i < a.length; i++){
for (int j = 0; j < a[i].length; j++)
Values[i+1][j] = a[i][j];
}
}
}
Und der Teil des Hauptprogramms der relavant ist:
Code:
ScoreTableCellRender str = new ScoreTableCellRender();
TAnzeigeModell2.setValue(ColDate, Values2);
TAnzeige2.setDefaultRenderer(String.class, str);
Ich hoffe wirklich, dass ihr mir helfen könnt und bedanke mich schon mal im Vorraus.
lg
Morgaine21