Hallo!
Ich habe einen TableCellRenderer geschrieben, der ein Icon in einer Tabelle anzeigen soll. Wenn es die Bilddatei zu dem Icon jedoch nicht gibt, dann soll der Wert der Zelle als Text angezeigt werden.
Doch, wenn das Bild zu einem bestimmten Text nicht vorhanden ist, dann wird dieser Text in jeder Zeile dieser Spalte neben dem Icon angezeigt. Und in den Zeilen, in denen eigentlich nur der Text angezeigt werden sollte, wird irgendein anderes Icon zusammen mit dem eigentlichen Text angezeigt.
Hat jemand eine Idee?
Ich habe einen TableCellRenderer geschrieben, der ein Icon in einer Tabelle anzeigen soll. Wenn es die Bilddatei zu dem Icon jedoch nicht gibt, dann soll der Wert der Zelle als Text angezeigt werden.
Doch, wenn das Bild zu einem bestimmten Text nicht vorhanden ist, dann wird dieser Text in jeder Zeile dieser Spalte neben dem Icon angezeigt. Und in den Zeilen, in denen eigentlich nur der Text angezeigt werden sollte, wird irgendein anderes Icon zusammen mit dem eigentlichen Text angezeigt.
Hat jemand eine Idee?
Java:
public class PositionCellRenderer extends JLabel implements TableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
this.setOpaque(true);
File f = new File("d:/test/pics/position/pos" + value.toString() + ".png");
if(f.isFile()) {
ImageIcon icon = new ImageIcon("d:/test/pics/position/pos" + value.toString() + ".png");
setIcon( icon );
}
else {
setText( value.toString() );
}
if (isSelected) {
setForeground( new Color(255, 255, 255) );
setBackground( new Color(90,130,40) );
}
else {
setForeground( new Color(255, 255, 255) );
if(row % 2 > 0) {
if(column % 2 > 0) {
setBackground(new Color(50,90,20));
}
else {
setBackground(new Color(60,100,30));
}
}
else {
if(column % 2 > 0) {
setBackground(new Color(30,70,10));
}
else {
setBackground(new Color(40,80,20));
}
}
}
return this;
}
}