Ich versuche, ein Symbol, um eine bestimmte JTable Spalte hinzuzufügen durch meine eigene Tabelle CellRenderers wie unten (based on parts of this tutorial) festgelegt wird:ein Symbol JTable Hinzufügen von DefaultTableCellRenderer zwingende
public class MyTableCellRenderer extends DefaultTableCellRenderer {
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
JLabel label = (JLabel)super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
if(column == MyTableModel.IMAGE_COLUMN){
String status = (String)value;
Icon icon = StatusImageUtil.getStatusIcon(status);
if(icon == null){
label.setText(status);
}else{
label.setIcon(icon);
}
}
return label;
}
}
Der obige Code funktioniert, aber:
- Alle Zellen haben das Symbol statt die spezifischen i in die angegebene wollen if-Anweisung
- Zelle MyTableModel.IMAGE_COLUMN dem sollte nur ein Symbol haben auch Text.
Vielen Dank im Voraus
Dank, wusste nicht, dass das gleiche Etikett für alle Tabellenzellen wiederverwendet wird. Mit dem obigen Code habe ich immer noch die gleichen Ergebnisse. Ich habe es gelöst, indem ich das Symbol gleich nach dem Umwandeln des Tabellenzellen-Renderers in JLabel auf Null gesetzt habe. – n002213f
Yup mein Adivce hat nicht geholfen, weil ich über die Spalte vergessen habe == MyTableModel.IMAGE_COLUMN Test – Peter