我有一个包含换行符(“\ r”)的传入文本字符串。
当我用System.out.println(myString)
输出时,将解释回车。
但是,当我将字符串设置为Label的内容时,它会忽略回车。
如何强制Label解释回车/换行(没有XHTML模式)?
答案 0 :(得分:7)
您可以将此文字放入标签:
@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 :(得分:3)
在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 );
这应该有效并且也很优雅。
答案 2 :(得分:0)
在阅读了Vaadin的书,并且很少有测试之后,我认为\ r \ n可以被标签解释。
用\ n替换\ r \ n会给你两个选项:
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
问候。
埃里克