Mo3*_*o35 1 java swing jtable imageicon
我试图使用ImageIcon类添加图像到jTable单元格,但我进入单元格sun.awt.image.ToolkitImage@196a4632,它应该在单元格中显示我尝试的代码的图像:
JTable jTable;
String[] columns={"Page No","Chapter","Image"};
Object[][] rows={{1,4,null},{2,7,null}}}
public Tab_ImgIcn(){
ImageIcon icon=new ImageIcon(getClass().getResource("exit.png"));
jTable= new JTable(rows, columns);
jTable.setValueAt(icon.getImage(), 0,3);
JScrollPane jps = new JScrollPane(jTable);
frame.add(jps);
}
Run Code Online (Sandbox Code Playgroud)
您需要覆盖getColumnClass()表模型,并返回ImageIcon.class带有的列ImageIcon.如果不这样做,渲染器将显示toString(),因为默认的列类类型将是Object.请参见如何使用表:编辑器和渲染器.
例如
ImageIcon icon=new ImageIcon(getClass().getResource("exit.png"));
String[] columns={"Page No","Chapter","Image"};
Object[][] rows={{1,4,icon},{2,7,icon}};
DefaultTableModel model = new DefaultTableModel(rows, columns) {
@Override
public Class<?> getColumnClass(int column) {
switch(column) {
case 0:
case 1: return Integer.class;
case 2: return ImageIcon.class;
default: return Object.class;
}
}
};
JTable table = new JTable(model);
Run Code Online (Sandbox Code Playgroud)