2016-03-04 93 views
5

在我的應用程序中,我使用了兩個Tabs。在第一次我放置了HtmlEditor,在第二次放置了TextArea。 HTML標籤是默認的,當用戶創建HTML輸入時,他可以切換到TextArea直接查看/更改HTML源代碼。我添加了一個監聽器來從HTML編輯器獲取htmlText,並將其設置爲TextArea中的文本,因此用戶可以輕鬆地在HTML和源模式之間切換。這裏是我的聽衆:JavaFX TextArea如何使用自動換行符設置文本

@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」字符中添加新行字符,但也許有更好的解決方案?

+1

你只是在尋找'textEditor.setWrapText(真);'? –

+0

2小時的研究,它非常簡單:)非常感謝!這就是我一直在尋找的! – RichardK

回答

12

如果你只是想文本換行,使用

textEditor.setWrapText(true); 
相關問題