如何使用 HTML 和 CSS(Java、Swing)在 JTextPane 中设置图像大小?

问题描述 投票:0回答:1

我想将图像(例如,从 LaTeX 编译的公式)插入到 JTextPane 中,使用 HTML+CSS 进行文本标记,手动设置其大小。我像这里一样尝试过

import java.awt.Dimension;
import javax.swing.JFrame;
import javax.swing.JTextPane;


public class App extends JFrame {

    private void run() {
        setSize(new Dimension(320, 240));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JTextPane pane = new JTextPane();
        pane.setContentType("text/html");
        String imageUrl = getClass()
                              .getClassLoader()
                              .getResource("resources/img.jpg");
        pane.setText(
                "<html>"+
                    "<head> <style>"+
                            // CSS works perfectly for text,
                            ".text { color: red; font-family: \"Times New Roman\"; }"+
                            // but not for images
                            ".pic { width: 250px; }"+
                    "</style> </head>"+
                    "<body>"+
                        "<p class=\"text\"> Aaaa. </p>"+
                        "<img class=\"pic\" src=\""+imageUrl+"\" />"+
                    "</body>"+
                "</html>"
            );
        
        getContentPane().add(pane);
        setVisible(true);
    };

    public App() {
        super("Test HTML+CSS");
    }

    public static void main(String[] args) {
        App app = new App();
        app.run();
    }
}

由于某种原因,JTextPane 与文本样式完美配合,但忽略了图片的 CSS 符号。有什么办法可以解决这个问题还是我只是在浪费时间?

java html css swing
1个回答
0
投票

正如评论中提到的

Gilbert Le Blank
width
块应位于
<img>
语句中。所以 HTML 字符串应该如下所示:

<html>
  <body>
    <p color="red"> Aaaa. </p>
    <img width="250" src="/path/to/Image" />
  </body>
</html>
© www.soinside.com 2019 - 2024. All rights reserved.