【发布时间】:2012-01-11 10:59:41
【问题描述】:
我有一个包含换行符(“\r”)的传入文本字符串。
当我使用 System.out.println(myString) 输出它时,会解释回车。
但是,当我将字符串设置为标签的内容时,它会忽略回车。
如何强制标签解释回车/换行(没有 XHTML 模式)?
【问题讨论】:
我有一个包含换行符(“\r”)的传入文本字符串。
当我使用 System.out.println(myString) 输出它时,会解释回车。
但是,当我将字符串设置为标签的内容时,它会忽略回车。
如何强制标签解释回车/换行(没有 XHTML 模式)?
【问题讨论】:
您可以通过以下方式将此文本放入标签中:
@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> 标记内。
【讨论】:
Label.CONTENT_XHTML - 已弃用。 从 7.0 开始,请改用 ContentMode.HTML
在 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 );
这应该可以工作并且也很优雅。
【讨论】:
看完 Vaadin 的书,以及很少的测试,我不认为 \r 可以被 Label 解释。
将 \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
问候。
埃里克
【讨论】: