2016-03-04 11 views
5

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?

+1

Stai solo in cerca di 'textEditor.setWrapText (true);'? –

+0

2 ore di ricerca ed è stato così semplice :) Grazie mille! Questo è quello che stavo cercando! – RichardK

risposta

12

se si desidera solo il testo per avvolgere, utilizzare

textEditor.setWrapText(true); 
Problemi correlati