簡體   English   中英

如何在JTable中將Blob顯示為圖像

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM