2012-01-11 83 views
4

我有一個包含換行符(「\ r」)的傳入文本字符串。Vaadin:我的標籤忽略回車符

當我輸出它時:System.out.println(myString),回車被解釋。

但是,當我將該字符串設置爲Label的內容時,它忽略回車。

我該如何強制標籤解釋馬車/行返回(沒有XHTML模式)?

回答

0

在閱讀Vaadin的書以及很少的測試後,我不認爲\ r可以被標籤解釋。

與\ n代替\ r給你兩個選擇:

Label.setContentMode(Label.CONTENT_XHTML). //But you don't want to do this 
Label.setContentMode(Label.CONTENT_PREFORMATTED) //But I think it's not the display you want 

問候。

埃裏克

6

這是你如何把這個文本到您的標籤:

@Override 
public void init() { 
    Window window = new Window(); 
    Label label = new Label("<pre>First line\rSecond line\nThird line</pre>", Label.CONTENT_XHTML); 
    window.addComponent(label); 
    setMainWindow(window); 
} 

的關鍵是使用Label.CONTENT_XHTML內容模式和包圍<pre>標籤內的文本。

+1

'Label.CONTENT_XHTML' - **棄用。**從7.0開始,使用ContentMode.HTML代替 – 2015-06-26 01:11:46

2

在Vaadin 7.0你可以使用ContentMode.PREFORMATTED例如:

String resultText = "First line\rSecond line\nThird line"; 
Label dateLabel = new Label(resultText, ContentMode.PREFORMATTED); 

,如果你希望文字看起來性感,你可以使用一些主題,是這樣的:

dateLabel.setStyleName(Runo.LABEL_SMALL); 

這應該工作和也是優雅的。