将图像添加到JTable

时间:2015-01-07 15:06:36

标签: java image swing jtable

我正在尝试在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);)来设置在我从列表中拍摄的不同图片中。

我有什么遗漏的吗?感觉像这里一样容易出错,我希望我能提供足够的信息让你们明白,提前知道!

1 个答案:

答案 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