我正在寻找一种方法来使用JavaFX HTMLEditor的setHtmlText来添加本地图像。我可以添加远程图像没问题:
HTMLEditor editor = new HTMLEditor();
editor.setHtmlText("<img src=\"http://someaddress.com\" width=\"32\" height=\"32\" >");
但不能为本地图像执行此操作
HTMLEditor editor = new HTMLEditor();
editor.setHtmlText("<img src=\"categoryButton.fw.png\" width=\"32\" height=\"32\" >");
此按钮与java源位于同一级别。那么为什么这不起作用?
答案 0 :(得分:4)
使用getResource获取本地图像资源的位置。
editor.setHtmlText(
"<img src=\"" +
getClass().getResource("categoryButton.fw.png") +
"\" width=\"32\" height=\"32\" >"
);
它的工作方式与将内容加载到WebView的方式相同,如下所示:
以下是截图:
可执行样本:
import javafx.application.*;
import javafx.scene.Scene;
import javafx.scene.web.HTMLEditor;
import javafx.stage.Stage;
public class HTMLEditorWithImage extends Application {
@Override public void start(Stage stage) {
HTMLEditor editor = new HTMLEditor();
editor.setHtmlText(
"<img src=\"" +
getClass().getResource("Blue-Fish-icon.png") +
"\" width=\"32\" height=\"32\" >"
);
stage.setScene(new Scene(editor));
stage.show();
}
public static void main(String[] args) { launch(args); }
}
我只是好奇这是否是将图像放入某种文本区域的唯一方法?
上述两种技术仅用于数据显示。既不允许编辑带有图像和插入其中的其他节点的多样式文本。目前,JavaFX平台为此功能提供的唯一控件是HTMLEditor或WebView contenteditable true或嵌入式3rd party editor written in JavaScript。
create styled text editors using native JavaFX构造中有一些不依赖WebView或HTMLEditor的第三方努力,但截至今天,我认为没有任何东西可以广泛使用。
答案 1 :(得分:2)
示例代码:在图像标记中附加文件:\\以引用本地文件。
ScreenCapture x = new ScreenCapture();
String imagePath = x.captureScreen(scCaptureCount+++"", "C:\\work\\temp");
String text = editor.getHtmlText();
editor.setHtmlText(text+"<img src='file:\\\\"+imagePath+"' >" );
答案 2 :(得分:0)
此代码在最后一个结束段标记或结束正文标记之前插入图像。
bint.value = 42;
bfloat.value = 42f;