gpt4 book ai didi

java - 如何在 JTable 中将 blob 显示为图像

转载 作者:行者123 更新时间:2023-11-29 11:58:18 25 4
gpt4 key购买 nike

我需要一些帮助来将图像(blob)从 MySQL 显示到 JTable。我研究了一些需要包含的帮助

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){}
}

但是 table 上没有照片。它只是白色/空白,但是当我点击应该是图像“[B@147cec”显示

最佳答案

您不必为 ImageIcons 设置单元格渲染器,因为默认单元格渲染器已经知道如何显示 ImageIcons。不,您必须做的是获取该 BLOB 并从中创建一个 ImageIcon,而如何执行此操作完全取决于 BLOB 的数据格式。如果它实际上是图像(例如 PNG 文件),则通过其 getBinaryStream() 方法获取其二进制流,并将生成的字节数组传递到 ImageIcon 构造函数中,然后将其添加到 JTable 中。确保 JTable 或其模型知道保存图标的列实际上保存了 Icons,这意味着您应该重写列 getColumnClass() 方法以返回 Icon。

关于java - 如何在 JTable 中将 blob 显示为图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32809590/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com