我正在尝试在JTable中显示图像,但我遇到了问题。我的JTable单元内的所有内容都是这样的:[Ljava.lang.Object; @ 4ec6ca37。我在这里读到了如何做,人们说它可以与ImageIcon一起使用。这就是我的工作方式:
ImageIcon icon = null;
...
icon = new ImageIcon('gets the image and convert it to a Strings');
tableModel.setValueAt(icon, i, 4);
相关事实(?):我的tableModel是一个AbstractTableModel,我正在迭代我的JTable(这就是为什么它说..(icon, i ,4);)来设置在我从列表中拍摄的不同图片中。
我有什么遗漏的吗?感觉像这里一样容易出错,我希望我能提供足够的信息让你们明白,提前知道!
答案 0 :(得分:2)
您必须在表模型实现中覆盖getColumnClass()
方法,并为相应的列索引返回Icon.class
,以便允许表应用正确的TableCellRenderer。例如:
class MyTableModel extends AbstractTableModel {
private static final int ICONS_COLUMN = 0;
@Override
public Class<?> getColumnClass(int columnIndex) {
return columnIndex == ICONS_COLUMN ? Icon.class
: super.getColumnClass(columnIndex);
}
...
}
有关详细信息,请参阅Concepts: Editors and Renderers。