JavaFX - HTML 编辑器



一个HTML 编辑器是一种文本编辑器,用户可以在 JavaFX 应用程序中创建和编辑 HTML 代码。一些流行的 HTML 文本编辑器包括记事本、Sublime Text、Atom、Vscode 等。

注意 - HTML 是一种用于开发 Web 应用程序的标记语言。

在 JavaFX 中,HTML 编辑器由名为HTMLEditor的类表示。此类属于javafx.scene.web包。通过实例化此类,我们可以在 JavaFX 中嵌入 HTMLEditor 节点。

JavaFX HTMLEditor 提供以下功能 -

  • 它支持文本缩进和对齐。

  • 我们可以创建项目符号列表和编号列表。

  • 它允许我们更改背景和前景色。

  • 它还包括文本样式功能,例如颜色、粗体、斜体和下划线。

  • 我们还可以设置字体大小和字体系列。

在 JavaFX 中嵌入 HTMLEditor

如前所述,我们可以通过实例化 HTMLEditor 类直接在 JavaFX 应用程序中嵌入 HTML 编辑器。与其他 UI 控件类似,需要将 HTMLEditor 实例添加到 Scene 对象才能使其在 JavaFX 应用程序中可见。

示例

以下 JavaFX 程序演示了如何在 JavaFX 应用程序中嵌入 HTML 编辑器。将此代码保存在名为JavafxHtmlEditor.java的文件中。

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.layout.*; 
import javafx.stage.Stage; 
import javafx.scene.web.HTMLEditor; 
public class JavafxHtmlEditor extends Application {
   @Override
   public void start(Stage stage) {
      // Instantiating HTMLEditor class 
      HTMLEditor editorhtml = new HTMLEditor(); 
      // including the HTMLEditor to Scene 
      Scene scene = new Scene(editorhtml, 600, 500); 
      // setting the stage to display editor 
      stage.setScene(scene); 
      stage.setTitle("HTML Editor in JavaFX");
      stage.show();  
   }
   public static void main(String[] args) {
      launch(args);
   }
}

要从命令提示符编译并执行保存的 Java 文件,请使用以下命令 -

javac --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.web JavafxHtmlEditor.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.web JavafxHtmlEditor

输出

当我们执行上述代码时,它将生成以下输出。

HtmlEditor Output

使用预定义文本在 JavaFX 中创建 HtmlEditor

我们还可以通过 JavaFX 代码提供具有所需样式的预定义文本。对于此操作,我们可以使用HTMLEditor类的setHtmlText()方法。此方法将字符串作为参数,并在 JavaFX 应用程序启动时在编辑区域中显示该内容。

示例

以下是将创建具有预定义文本的 HTML 编辑器的 JavaFX 程序。将此代码保存在名为HtmlEditorText.java的文件中。

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.layout.*; 
import javafx.stage.Stage; 
import javafx.scene.web.HTMLEditor; 
public class HtmlEditorText extends Application {
   @Override
   public void start(Stage stage) {
      // Instantiating HTMLEditor class 
      HTMLEditor editorhtml = new HTMLEditor(); 
      // Setting the content for HTML Editor
      String text = "<html><body>Lorem ipsum dolor sit "
      + "amet, consectetur adipiscing elit. Nam tortor felis, pulvinar "
      + "in scelerisque cursus, pulvinar at ante. Nulla consequat"
      + "congue lectus in sodales. Nullam eu est a felis ornare.</body></html>";
      editorhtml.setHtmlText(text);
      // including the HTMLEditor to Scene 
      Scene scene = new Scene(editorhtml, 600, 500); 
      // setting the stage to display editor 
      stage.setScene(scene); 
      stage.setTitle("HTML Editor in JavaFX");
      stage.show();  
   }
   public static void main(String[] args) {
      launch(args);
   }
}  

使用以下命令从命令提示符编译并执行保存的 Java 文件。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.web HtmlEditorText.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.web HtmlEditorText

输出

当我们执行上述代码时,它将生成以下输出。

HTMLEditor Output2

使用 JavaFX 中的 HtmlEditor 生成 HTML 代码

HTMLEditor类提供了一个名为getHtmlText()的方法来检索编辑区域的内容。此方法与 HTMLEditor 类对象一起调用。

示例

在以下 JavaFX 程序中,我们将创建一个 HTML 编辑器来创建和编辑内容,一个按钮来获取相应的 HTML 代码以及一个文本区域来显示获取的代码。将此代码保存在名为HtmlgetText.java的文件中。

import javafx.application.Application; 
import javafx.scene.Scene; 
import javafx.scene.layout.*; 
import javafx.scene.control.*;
import javafx.stage.Stage; 
import javafx.scene.web.HTMLEditor; 
import javafx.event.ActionEvent;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
public class HtmlgetText extends Application {
   @Override
   public void start(Stage stage) {
      // Instantiating HTMLEditor class 
      HTMLEditor editorhtml = new HTMLEditor();
      editorhtml.setPrefHeight(300); 
      // Creating a Text area to show HTML Code
      TextArea code = new TextArea();
      ScrollPane pane = new ScrollPane();
      pane.setContent(code);
      pane.setFitToWidth(true);
      pane.setPrefHeight(300);
      // creating button to get code
      Button button = new Button("Get Code");
      button.setOnAction(a -> {
         code.setText(editorhtml.getHtmlText());
      });
      // Creating root
      VBox root = new VBox();      
      root.setPadding(new Insets(10));
      root.setSpacing(5);
      root.setAlignment(Pos.BOTTOM_LEFT);
      root.getChildren().addAll(editorhtml, button, pane);
      // including the HTMLEditor to Scene 
      Scene scene = new Scene(root, 625, 500); 
      // setting the stage to display editor 
      stage.setScene(scene); 
      stage.setTitle("HTML Editor in JavaFX");
      stage.show();  
   }
   public static void main(String[] args) {
      launch(args);
   }
}

使用以下命令从命令提示符编译并执行保存的 Java 文件。

javac --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.web HtmlgetText.java
java --module-path %PATH_TO_FX% --add-modules javafx.controls,javafx.web HtmlgetText

输出

执行后,上述程序将生成一个 JavaFX 窗口,显示以下输出。

HTMLEditor Output3
广告

© . All rights reserved.