【问题标题】:How to Display blob as image in JTable如何在 JTable 中将 blob 显示为图像
【发布时间】:2015-09-27 15:30:45
【问题描述】:

我需要一些帮助来将图像(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){}
}

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

【问题讨论】:

    标签: java mysql swing jtable imageicon


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-23
      • 2017-04-06
      • 1970-01-01
      • 2018-01-14
      • 2020-06-08
      • 2017-05-07
      相关资源
      最近更新 更多