在我的申请中,我使用了两个标签。在第一个我放置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());
}
}
});
它工作正常,但HtmlEditor会自动将文本分成行。当我切换到TextArea时,它就在一行中。
我想过制作一个辅助方法,它采用TextArea长度属性来计算字符数,并在每个&#34; n&#34;中添加新的行字符。性格,但也许有更好的解决方案?
答案 0 :(得分:20)
如果您只想要文本换行,请使用
textEditor.setWrapText(true);