我有一个图像以斑点形式存储在数据库中。我使用JDBC与数据库进行通信。从数据库返回的数据位于byte []中。如何在JEditorPane上显示此内容?我是否必须将其写入磁盘,然后指定该位置?
答案 0 :(得分:1)
与此类似的东西。
1:首先获取blob,然后从resultSet转换为ImageIcon。
Blob blob = resultSet.getBlob(1);
ImageIcon imageIcon = new ImageIcon(
blob.getBytes(1, (int)blob.length()));
2:准备能够将图像图标添加到JEditorPane / JTextPane(textpane继承自JEditorPane),大致类似于:
StyledDocument doc = textPane.getStyledDocument();
Style def = StyleContext.getDefaultStyleContext().getStyle(StyleContext.DEFAULT_STYLE);
Style iconStyle = doc.addStyle("icon", def);
StyleConstants.setAlignment(iconStyle , StyleConstants.ALIGN_CENTER);
StyleConstants.setIcon(s, imageIcon);
doc.insertString(doc.getLength(), " ", doc.getStyle("icon"));