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

Ric*_*rdK 8 java textarea javafx

在我的应用程序中,我使用两个Tabs.在第一个我放置HtmlEditor,在第二个我放置TextArea.HTML选项卡是默认的,当用户创建HTML输入时,他可以切换到TextArea以直接查看/更改HTML源代码.我添加了一个监听器来从HtmlEditor获取rhe 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());
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)

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

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

Jam*_*s_D 21

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

textEditor.setWrapText(true);
Run Code Online (Sandbox Code Playgroud)