В моем приложении я использую две вкладки. В первом я разместил HtmlEditor, а во втором - TextArea. Вкладка HTML используется по умолчанию, и когда пользователь создает ввод HTML, он может переключиться в TextArea, чтобы просмотреть / изменить исходный код HTML напрямую. Я добавил слушателя, чтобы получить htmlText из HtmlEditor и установить его как текст в 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);
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения