
[英]How to retrieve image of type blob from MySQL in JTable using Java?
[英]How to Display blob as image in JTable
我需要一些帮助来显示从MySQL到JTable的图像(blob)。 我研究了一些需要包括的帮助
jTable.getColumnModel().getColumn().setCellRenderer(jTable.getDefaultRenderer(ImageIcon.class));
这是我的代码:
String sql = "select idcandidates,
lastname,
firstname,
middlename,
nickname,
gender,YEAR(CURRENT_TIMESTAMP) - YEAR(dob) - (RIGHT(CURRENT_TIMESTAMP, 5) < RIGHT(dob, 5)) as age,
position,
image from tbl_candidates";
try{
PreparedStatement ps = conn.prepareStatement(sql);
ResultSet rs = ps.executeQuery();
candidateTable.setModel(DbUtils.resultSetToTableModel(rs));
candidateTable.getColumnModel().getColumn(8).setCellRenderer(candidateTable.getDefaultRenderer(ImageIcon.class));
candidateTable.setAutoCreateRowSorter(true);
}
catch(Exception e){}
}
但是桌上没有照片。 它只是白色/空白,但是当我单击应该是图像“ [B @ 147cec””时显示
您不必为ImageIcons设置单元格渲染器,因为默认的单元格渲染器已经知道如何显示ImageIcons。 不,您必须做的是从该BLOB中取出一个ImageIcon,如何执行该操作取决于所有的BLOB数据格式。 如果实际上是图像(例如PNG文件),则通过其getBinaryStream()
方法获取其二进制流,并将结果字节数组传递给ImageIcon构造函数,然后将其添加到JTable中。 确保JTable或其模型知道保存图标的列实际上保存了Icons,这意味着您应该重写getColumnClass()
方法列以返回Icon。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.