JEdi​​torPane显示图像存储在byte []中

时间:2019-01-06 20:42:21

标签: java html image

我有一个图像以斑点形式存储在数据库中。我使用JDBC与数据库进行通信。从数据库返回的数据位于byte []中。如何在JEditorPane上显示此内容?我是否必须将其写入磁盘,然后指定该位置?

1 个答案:

答案 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);
  1. 添加图标:

doc.insertString(doc.getLength(), " ", doc.getStyle("icon"));