Skip to content

gluonhq/rich-text-area

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gluon

Build Maven Central License javadoc

The Rich Text Area Project

Gluon presents a new JavaFX control, created with Java and JavaFX standard APIs, called the RichTextArea control. RichTextArea is a text input control which provides rich text features along with emoji, and non-text objects like images, tables and hyperlinks.

Rich Text Area control

Based on the combination of VirtualFlow and multiple TextFlow controls, the RichTextArea control has features like:

  • Any part of the content can be selected and can have any styling (all font attributes, foreground or background color, …). This can be changed at any time. Selection of caret navigation of words, lines or paragraphs and can be done via mouse and keyboard platform-standard keys (arrows and key modifiers).
  • Any paragraph can be styled with text alignment, line separation, indentation, bulleted or numbered list.
  • Has support for non-text nodes like images that can be added at any point, even via drag and drop
  • Has support for event handling of hyperlinks and image custom actions
  • Copy/cut/paste, unlimited undo and redo are supported.
  • Save/open documents to persist and restore the content with its different styles.
  • Inline table support
  • Emoji support
  • … (and more to come)

rta_editor.png

License

The RichTextArea control is available for free under the GPLv3 license. If you create an Open Source application, you can use our software for free. Contact us for more information on commercial usage of the RichTextArea.

Usage

To use the RichTextArea control in your project add the following dependency:

<dependency>
    <groupId>com.gluonhq</groupId>
    <artifactId>rich-text-area</artifactId>
    <version>1.2.0</version>
</dependency>

and then simply create an instance and add it to your JavaFX application:

@Override
public void start(Stage stage) {
    RichTextArea editor = new RichTextArea();
    BorderPane root = new BorderPane(editor);
    Scene scene = new Scene(root, 800, 600);
    stage.setScene(scene);
    stage.show();
}

Samples

Multiple samples, from basic to full-featured can be found in the samples folder.

Issues and Contributions

Issues can be reported to the Issue tracker

Contributions can be submitted via Pull requests, providing you have signed the Gluon Individual Contributor License Agreement (CLA).

Follow contributing rules for this repository.

Design Notes

See documentation for more information.