From 80b8f262f2a28de6db77d2d8e78fb50d21583cdc Mon Sep 17 00:00:00 2001 From: zhangmeng <1334717033@qq.com> Date: Sat, 7 Oct 2023 23:28:33 +0800 Subject: [PATCH] =?UTF-8?q?2023=E5=B9=B410=E6=9C=887=E6=97=A522:34:54?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++++- .../tools/controller/EditListController.java | 25 +++++++++++++++---- .../tools/editors/monaco/MonacoEdit.java | 5 ++-- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/pom.xml b/pom.xml index c79275d..74a1984 100644 --- a/pom.xml +++ b/pom.xml @@ -448,7 +448,11 @@ timi-fx 1.4.0 - + + eu.mihosoft.monacofx + MonacoFX + 1.0-SNAPSHOT + diff --git a/src/main/java/com/zhangmeng/tools/controller/EditListController.java b/src/main/java/com/zhangmeng/tools/controller/EditListController.java index 0976cd3..63e7212 100644 --- a/src/main/java/com/zhangmeng/tools/controller/EditListController.java +++ b/src/main/java/com/zhangmeng/tools/controller/EditListController.java @@ -4,6 +4,7 @@ import com.zhangmeng.tools.editors.ace.AceEditor; import com.zhangmeng.tools.editors.monaco.MonacoEdit; import com.zhangmeng.tools.utils.ImagePath; import com.zhangmeng.tools.utils.ResourcesUtils; +import eu.mihosoft.monacofx.MonacoFX; import javafx.beans.property.SimpleDoubleProperty; import javafx.collections.FXCollections; import javafx.collections.ObservableList; @@ -38,7 +39,7 @@ public class EditListController { private AnchorPane root; private AceEditor acJsEditor; - private MonacoEdit monacoEdit; + private AnchorPane monacoEdit; public static final String color_cell = "#f4f4f4"; @@ -315,15 +316,29 @@ public class EditListController { } private void monacoEdit(boolean flag) { + + MonacoFX monacoFX = new MonacoFX(); + // set initial text + monacoFX.getEditor().getDocument().setText( + "#include \n" + + "int main() {\n" + + " // printf() displays the string inside quotation\n" + + " printf(\"Hello, World!\");\n" + + " return 0;\n" + + "}"); + + // use a predefined language like 'c' + monacoFX.getEditor().setCurrentLanguage("c"); + monacoFX.getEditor().setCurrentTheme("vs-dark"); + //默认选择第一个 listView.getSelectionModel().select(1); - if (!flag){ - monacoEdit = new MonacoEdit(); - root = monacoEdit; - WebView webView = monacoEdit.getWebView(); + root = new AnchorPane(monacoFX); + WebView webView = monacoFX.getView(); webView.prefWidthProperty().bind(root.widthProperty()); webView.prefHeightProperty().bind(root.heightProperty()); + monacoEdit = root; }else { root = monacoEdit; } diff --git a/src/main/java/com/zhangmeng/tools/editors/monaco/MonacoEdit.java b/src/main/java/com/zhangmeng/tools/editors/monaco/MonacoEdit.java index 8022720..711bf2e 100644 --- a/src/main/java/com/zhangmeng/tools/editors/monaco/MonacoEdit.java +++ b/src/main/java/com/zhangmeng/tools/editors/monaco/MonacoEdit.java @@ -89,15 +89,14 @@ public class MonacoEdit extends AnchorPane { * @param value */ private void setMonacoText(String value) { - JSObject editor = (JSObject) engine.executeScript("window"); - editor.call("setValue", value); + engine.executeScript("setValue()"); } /** * 设置模式 */ private void setMonacoMode(MonacoMode mode) { - window.call("setModelLanguage", mode.getName()); + engine.executeScript("setModelLanguage()"); } /**