我正在尝试通过指定我自己的表格单元格渲染器(based on parts of this tutorial)来向特定的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;
}
}
以上代码有效:
提前致谢
答案 0 :(得分:4)
为了更好的性能原因,JTable为它呈现的每个单元重用相同的标签。 这意味着每次更改时都需要设置文本和图标。
字体,背景颜色等也是如此
if(icon == null){
label.setText(status);
label.setIcon(null);
}else{
label.setText("");
label.setIcon(icon);
}
应该做的伎俩,