2023年11月18日18:13:00

master
zhangmeng 2023-11-18 18:13:09 +08:00
parent 8b426d1920
commit e9628655c5
2 changed files with 56 additions and 78 deletions

View File

@ -55,37 +55,33 @@ public class RxEditer extends AnchorPane{
public RxEditer(String style) { public RxEditer(String style) {
SwingNode sn = new SwingNode(); SwingNode sn = new SwingNode();
new Thread(()->{ new Thread(()->{
try { SwingUtilities.invokeLater(() -> {
SwingUtilities.invokeAndWait(() -> { textArea.setEditable(true);//编辑器
textArea.setEditable(true);//编辑器 if (style == null || style.equals("")) {
if (style == null || style.equals("")) { textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);//java
textArea.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_JAVA);//java }else {
}else { textArea.setSyntaxEditingStyle(style);
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);//折叠代码 line.setValue(linenum);
textArea.addCaretListener(e -> { column.setValue(columnnum);
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);
}); });
} catch (InterruptedException | InvocationTargetException e) { RTextScrollPane sp = new RTextScrollPane(textArea);
throw new RuntimeException(e); sn.setContent(sp);
} });
}).start(); }).start();
getChildren().add(sn); getChildren().add(sn);
setTopAnchor(sn, 0.0); setTopAnchor(sn, 0.0);

View File

@ -97,11 +97,11 @@ public class EditorListImplController {
if (swingEditor != null) { if (swingEditor != null) {
flag = true; flag = true;
} }
load_them_edit();
swingEditor(flag); swingEditor(flag);
} }
public enum Type { public enum Type {
JAVA, HTML, GO, JS, CSS, SQL, XML, YML, MARKDOWN JAVA, HTML, GO, JS, CSS, SQL, XML, YML, MARKDOWN
} }
@ -401,19 +401,36 @@ public class EditorListImplController {
tabPane = new TabPane(); tabPane = new TabPane();
//添加菜单 //添加菜单
addMenu(); 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);
}
//加载菜单 public void addMenu() {
// 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);
// }
// 设置快捷键
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){ if (editer_index.getValue()==null || editer_index.getValue() == 0){
ListView<String> listView = new ListView<>(); ListView<String> listView = new ListView<>();
@ -489,44 +506,7 @@ public class EditorListImplController {
Stage primaryStage = (Stage) EditorListImplController.this.splitPane.getScene().getWindow(); Stage primaryStage = (Stage) EditorListImplController.this.splitPane.getScene().getWindow();
AlertUtils.alert("设置", them_choose,200,400, primaryStage); 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; case MARKDOWN -> style = SyntaxConstants.SYNTAX_STYLE_MARKDOWN;
} }
RxEditer rx = new RxEditer(style); RxEditer rx = new RxEditer(style);
rx.setTheme("idea");
rx.setText(file_content); rx.setText(file_content);
tab.setContent(rx); tab.setContent(rx);
} }
@ -1188,6 +1169,7 @@ public class EditorListImplController {
if (acJsEditor != null) { if (acJsEditor != null) {
flag = true; flag = true;
} }
load_them_edit();
acJsEditor(flag); acJsEditor(flag);
} }