以下のように独自のテーブル セル レンダラーを指定して、特定の JTable 列にアイコンを追加しようとしています (このチュートリアルの一部に基づいています)。
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;
}
}
上記のコードは動作しますが:
- ifステートメントで指定したい特定のアイコンではなく、すべてのセルにアイコンがあります
- アイコンのみを持つべきセル MyTableModel.IMAGE_COLUMN にもテキストがあります。
前もって感謝します