diff --git a/src/main/java/com/zhangmeng/tools/components/RxEditer.java b/src/main/java/com/zhangmeng/tools/components/RxEditer.java index dccce27..3c1ad02 100644 --- a/src/main/java/com/zhangmeng/tools/components/RxEditer.java +++ b/src/main/java/com/zhangmeng/tools/components/RxEditer.java @@ -55,37 +55,33 @@ public class RxEditer extends AnchorPane{ public RxEditer(String style) { SwingNode sn = new SwingNode(); new Thread(()->{ - try { - SwingUtilities.invokeAndWait(() -> { - textArea.setEditable(true);//编辑器 - if (style == null || style.equals("")) { - textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);//java - }else { - textArea.setSyntaxEditingStyle(style); + SwingUtilities.invokeLater(() -> { + textArea.setEditable(true);//编辑器 + if (style == null || style.equals("")) { + textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);//java + }else { + textArea.setSyntaxEditingStyle(style); + } + textArea.setCodeFoldingEnabled(true);//折叠代码 + textArea.addCaretListener(e -> { + JTextArea editArea = (JTextArea) e.getSource(); + int linenum = 1; + int columnnum = 1; + try { + int caretpos = editArea.getCaretPosition(); + linenum = editArea.getLineOfOffset(caretpos); + columnnum = caretpos - editArea.getLineStartOffset(linenum); + linenum += 1; + columnnum += 1; + } catch (Exception ex) { + ex.printStackTrace(); } - textArea.setCodeFoldingEnabled(true);//折叠代码 - textArea.addCaretListener(e -> { - JTextArea editArea = (JTextArea) e.getSource(); - int linenum = 1; - int columnnum = 1; - try { - int caretpos = editArea.getCaretPosition(); - linenum = editArea.getLineOfOffset(caretpos); - columnnum = caretpos - editArea.getLineStartOffset(linenum); - linenum += 1; - columnnum += 1; - } catch (Exception ex) { - ex.printStackTrace(); - } - line.setValue(linenum); - column.setValue(columnnum); - }); - RTextScrollPane sp = new RTextScrollPane(textArea); - sn.setContent(sp); + line.setValue(linenum); + column.setValue(columnnum); }); - } catch (InterruptedException | InvocationTargetException e) { - throw new RuntimeException(e); - } + RTextScrollPane sp = new RTextScrollPane(textArea); + sn.setContent(sp); + }); }).start(); getChildren().add(sn); setTopAnchor(sn, 0.0); diff --git a/src/main/java/com/zhangmeng/tools/controller/EditorListImplController.java b/src/main/java/com/zhangmeng/tools/controller/EditorListImplController.java index 3472f8c..146e02c 100644 --- a/src/main/java/com/zhangmeng/tools/controller/EditorListImplController.java +++ b/src/main/java/com/zhangmeng/tools/controller/EditorListImplController.java @@ -97,11 +97,11 @@ public class EditorListImplController { if (swingEditor != null) { flag = true; } + load_them_edit(); swingEditor(flag); } public enum Type { - JAVA, HTML, GO, JS, CSS, SQL, XML, YML, MARKDOWN } @@ -401,19 +401,36 @@ public class EditorListImplController { tabPane = new TabPane(); //添加菜单 addMenu(); + load_them_edit(); + File file = null; + FileTreeView fileTreeView = new FileTreeView(file); + fileTreeView.setBorder(BORDER_EXLEFT); + splitPane.getItems().clear(); + splitPane.getItems().add(0, fileTreeView); + splitPane.getItems().add(1, tabPane); + splitPane.setDividerPosition(0, 0.20); + splitPane.setDividerPosition(1, 0.80); + } - //加载菜单 -// for (AceTheme value : AceTheme.values()) { -// String them_string = value.toString(); -// MenuItem menuItem = new MenuItem(them_string); -// menuItem.setOnAction(event -> { -// AceEditor aceEditor = (AceEditor) tabPane.getSelectionModel().getSelectedItem().getContent(); -// MenuItem source = (MenuItem) event.getSource(); -// aceEditor.setAceTheme(AceTheme.valueOf(source.getText())); -// }); -// them_list.getItems().add(menuItem); -// } + public void addMenu() { + // 设置快捷键 + save.setAccelerator(new KeyCodeCombination(KeyCode.S, KeyCodeCombination.CONTROL_DOWN)); + save.setOnAction(event -> writer_file()); + + open_file.setAccelerator(new KeyCodeCombination(KeyCode.F, KeyCodeCombination.CONTROL_DOWN)); + open_file.setOnAction(event -> open_file()); + + open_dir.setAccelerator(new KeyCodeCombination(KeyCode.D, KeyCodeCombination.CONTROL_DOWN)); + open_dir.setOnAction(event -> open_file_dir()); + + new_file.setAccelerator(new KeyCodeCombination(KeyCode.N, KeyCodeCombination.CONTROL_DOWN)); + new_file.setOnAction(event -> new_file()); + + } + + public void load_them_edit(){ + them_list.getItems().clear(); if (editer_index.getValue()==null || editer_index.getValue() == 0){ ListView listView = new ListView<>(); @@ -489,44 +506,7 @@ public class EditorListImplController { Stage primaryStage = (Stage) EditorListImplController.this.splitPane.getScene().getWindow(); AlertUtils.alert("设置", them_choose,200,400, primaryStage); }); - - -// SwingNode swingNode = new SwingNode(); -// try { -// SwingUtilities.invokeAndWait(()->{ -// JFontDialog jFontDialog = new JFontDialog(); -// swingNode.setContent(jFontDialog); -// }); -// } catch (InterruptedException | InvocationTargetException e) { -// throw new RuntimeException(e); -// } } - - File file = null; - FileTreeView fileTreeView = new FileTreeView(file); - fileTreeView.setBorder(BORDER_EXLEFT); - splitPane.getItems().clear(); - splitPane.getItems().add(0, fileTreeView); - splitPane.getItems().add(1, tabPane); - splitPane.setDividerPosition(0, 0.20); - splitPane.setDividerPosition(1, 0.80); - } - - public void addMenu() { - - // 设置快捷键 - save.setAccelerator(new KeyCodeCombination(KeyCode.S, KeyCodeCombination.CONTROL_DOWN)); - save.setOnAction(event -> writer_file()); - - open_file.setAccelerator(new KeyCodeCombination(KeyCode.F, KeyCodeCombination.CONTROL_DOWN)); - open_file.setOnAction(event -> open_file()); - - open_dir.setAccelerator(new KeyCodeCombination(KeyCode.D, KeyCodeCombination.CONTROL_DOWN)); - open_dir.setOnAction(event -> open_file_dir()); - - new_file.setAccelerator(new KeyCodeCombination(KeyCode.N, KeyCodeCombination.CONTROL_DOWN)); - new_file.setOnAction(event -> new_file()); - } // @@ -854,6 +834,7 @@ public class EditorListImplController { case MARKDOWN -> style = SyntaxConstants.SYNTAX_STYLE_MARKDOWN; } RxEditer rx = new RxEditer(style); + rx.setTheme("idea"); rx.setText(file_content); tab.setContent(rx); } @@ -1188,6 +1169,7 @@ public class EditorListImplController { if (acJsEditor != null) { flag = true; } + load_them_edit(); acJsEditor(flag); }