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);
在我的应用程序中,我使用了两个 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);