Nella mia applicazione, sto usando due schede. Nel primo ho inserito HtmlEditor e nel secondo ho inserito TextArea. La scheda HTML è predefinita e quando l'utente sta creando input HTML, può passare a TextArea per vedere/modificare direttamente il codice sorgente HTML. Ho aggiunto un listener per ottenere htmlText da HtmlEditor e impostarlo come testo in TextArea, in modo che l'utente possa facilmente passare da HTML a modalità sorgente. Ecco il mio ascoltatore:JavaFX TextArea come impostare il testo con nuove interruzioni di riga automatiche
@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());
}
}
});
Funziona bene, ma HtmlEditor interrompe automaticamente il testo nelle linee. Quando passo a TextArea, è tutto in una riga.
Ho pensato di creare un metodo di supporto che prenda l'attributo di lunghezza TextArea per contare il numero di caratteri e aggiunge il carattere di nuova riga ogni carattere "n", ma forse esiste una soluzione migliore?
Stai solo in cerca di 'textEditor.setWrapText (true);'? –
2 ore di ricerca ed è stato così semplice :) Grazie mille! Questo è quello che stavo cercando! – RichardK