JavaFX TextArea如何设置带有自动换行符的文本

JavaFX TextArea how to set text with automatic new line breaks

在我的应用程序中,我使用了两个 Tab。在第一个中,我放置了一个 HtmlEditor,在第二个中,我放置了一个 TextArea。 HTML 选项卡是默认的,当用户创建 HTML 输入时,他可以切换到 TextArea 以直接查看或更改 HTML 源代码。我添加了一个侦听器以从 HtmlEditor 获取 htmlText 并将其设置为 TextArea 中的文本,因此用户可以轻松地在 HTML 和源模式之间切换。这是我的听众:

@FXML
private Tab htmlTab;

@FXML
private Tab sourceTab;

@FXML
private HTMLEditor htmlEditor;

@FXML
private TextArea textEditor;

        htmlTab.selectedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
            if (htmlTab.isSelected()) {
                htmlEditor.setHtmlText(textEditor.getText());
            }
        }
    });

    sourceTab.selectedProperty().addListener(new ChangeListener<Boolean>() {
        @Override
        public void changed(ObservableValue<? extends Boolean> observable, Boolean oldValue, Boolean newValue) {
            if (sourceTab.isSelected()) {
                textEditor.setText(htmlEditor.getHtmlText());
            }
        }
    });

它工作正常,但 HtmlEditor 会自动将文本分成几行。当我切换到 TextArea 时,所有内容都在一行中。

我想过制作一个辅助方法,它采用 TextArea 长度属性来计算字符数并每“n”个字符添加换行符,但也许有更好的解决方案?

如果您只想让文字换行,请使用

textEditor.setWrapText(true);