Java 在JTable中添加图像时显示的字符串路径

Java 在JTable中添加图像时显示的字符串路径,java,swing,jtable,tablemodel,imageicon,Java,Swing,Jtable,Tablemodel,Imageicon,我尝试在添加图像时使用setValueAt,但问题是它打印字符串而不加载图像。有什么帮助吗。代码如下 int selectedColumn = table1.getSelectedColumn(); int selectedRow = table1.getSelectedRow(); ImageIcon addIcon = new ImageIcon("c:\\onion.png"); table1.getModel().setValueAt(addIcon, selectedRow, elec

我尝试在添加图像时使用setValueAt,但问题是它打印字符串而不加载图像。有什么帮助吗。代码如下

int selectedColumn = table1.getSelectedColumn();
int selectedRow = table1.getSelectedRow();
ImageIcon addIcon = new ImageIcon("c:\\onion.png");
table1.getModel().setValueAt(addIcon, selectedRow, electedColumn);

您需要为其方法返回
Icon.class

您需要为其方法返回
Icon.class

确保您的表知道给定列中存储的数据,以便选择适当的呈现器。因此,您的JTable创建代码应该如下所示:

int selectedColumn = table1.getSelectedColumn();
int selectedRow = table1.getSelectedRow();
ImageIcon addIcon = new ImageIcon("c:\\onion.png");
table1.getModel().setValueAt(addIcon, selectedRow, electedColumn);
DefaultTableModel tableModel = new DefaultTableModel(dataObject, columnNames);
JTable table = new JTable(tableModel){
    public Class getColumnClass(int column){
        return getValueAt(0, column).getClass();
    }
};

确保表知道给定列中存储的数据,以便选择适当的呈现程序。因此,您的JTable创建代码应该如下所示:

int selectedColumn = table1.getSelectedColumn();
int selectedRow = table1.getSelectedRow();
ImageIcon addIcon = new ImageIcon("c:\\onion.png");
table1.getModel().setValueAt(addIcon, selectedRow, electedColumn);
DefaultTableModel tableModel = new DefaultTableModel(dataObject, columnNames);
JTable table = new JTable(tableModel){
    public Class getColumnClass(int column){
        return getValueAt(0, column).getClass();
    }
};

你能发布你如何创建JTable的代码吗?你能发布你如何创建JTable的代码吗?是的,在大多数上下文中重写getColumnClass是正确的-但是a)应该由模型(而不是表)来完成b)按实际值来做有点危险,至少必须防止nullyes,重写getColumnClass在大多数上下文中都是正确的,但是a)应该由模型(而不是表)完成b)按实际值执行有点冒险,至少必须防止null