代码之家  ›  专栏  ›  技术社区  ›  Mads Mobæk

显示本地图像(bufferedimage?)JTextPane内部

  •  0
  • Mads Mobæk  · 技术社区  · 15 年前

    我试图在jtextpane的package1/package2/myimage.gif中显示本地图像。我首先尝试将资源加载到bufferedimage中:

    BufferedImage image = ImageIO.read(ClassLoader.getSystemResourceAsStream(
        "package1/package2/myImage.gif"));
    

    但后来我不知道如何在settext方法中使用它,所以我试着只指向img标记中的图像:

    textpane.setText("Some text <img src=\"package1/package2/myImage.gif\" />," +
        " and some more text");
    

    这张照片在跑步时是一张破碎的照片。我很确定路径是正确的,因为将其加载到bufferedimage中是可行的。

    如何在HTML支持的JTabPANE中使用本地资源,比如图像,以及其他文本?

    3 回复  |  直到 15 年前
        1
  •  1
  •   St.Shadow    15 年前

    你检查过吗? sun`s tutorial ?

        2
  •  1
  •   Martijn Courteaux    15 年前

    图像在jour应用程序jar中。所以你必须把它们提取到一个临时文件中。

    public String getImagePath(BufferedImage bi) {
        try {
            File temp = File.createTempFile("image", ".png");
            ImageIO.write(bi, "PNG", new FileOutputStream(temp));
            return temp.getAbsolutePath();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
        return null;
    }
    

    所以你可以使用:

    textPane.setText("<html>Some text <img src=\"" + getImagePath(yourLoadedImage) + "\">Some other text");
    
        3
  •  0
  •   Arun Kumar S    14 年前
    textpane.insertIcon( new ImageIcon( image ) );