JavaFX 文本区域如何使用自动换行符设置文本

2022-09-02 20:17:29

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

@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());
            }
        }
    });

它工作正常,但会自动将文本分成行。当我切换到 时,它都在一行中。HtmlEditorTextArea

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


答案 1

如果只想换行文本,请使用

textEditor.setWrapText(true);

答案 2