JavaFX editor node based on the powerful Monaco editor that drives VS Code
Using MonacoFX is straightforward. Just create a MonacoFX node and add it to the scene graph. Here's a an example on how to use MonacoFX with syntax highlighting and code folding for an existing language:
public class App extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
// create a new monaco editor node
MonacoFX monacoFX = new MonacoFX();
StackPane root = new StackPane(monacoFX);
// set initial text
monacoFX.getEditor().getDocument().setText(
"#include <stdio.h>\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");
// the usual scene & stage setup
Scene scene = new Scene(root, 800,600);
primaryStage.setTitle("MonacoFX Demo (running on JDK " + System.getProperty("java.version") + ")");
primaryStage.setScene(scene);
primaryStage.show();
}
}
Visit the MonacoFX tutorial projects and learn more about advanced topics, such as adding custom language support and code folding.
- JDK >= 11 (tested with JDK 13)
- Internet Connection (other dependencies will be downloaded automatically)
- Optional: IDE with Gradle support
To build the project from an IDE do the following:
- open the Gradle project
- call the
assemble
Gradle task to build the project
Building the project from the command line is also possible.
Navigate to the project folder and call the assemble
Gradle
task to build the project.
cd Path/To/MonacoFX
./gradlew assemble
cd Path\To\MonacoFX
gradlew assemble
To run the project from an IDE do the following:
- open the Gradle project
- call the
run
Gradle task to run the project
Running the project from the command line is also possible.
Navigate to the project folder and call the run
Gradle
task to run the project.
cd Path/To/MonacoFX
./gradlew run
cd Path\To\MonacoFX
gradlew run