2012-01-11 73 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); 

这应该工作和也是优雅的。