我想将图像(例如,从 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 符号。有什么办法可以解决这个问题还是我只是在浪费时间?
正如评论中提到的
Gilbert Le Blank
,width
块应位于<img>
语句中。所以 HTML 字符串应该如下所示:
<html>
<body>
<p color="red"> Aaaa. </p>
<img width="250" src="/path/to/Image" />
</body>
</html>