【问题标题】:Vaadin : My label ignores the carriage return characterVaadin:我的标签忽略了回车符
【发布时间】:2012-01-11 10:59:41
【问题描述】:

我有一个包含换行符(“\r”)的传入文本字符串。

当我使用 System.out.println(myString) 输出它时,会解释回车。

但是,当我将字符串设置为标签的内容时,它会忽略回车。

如何强制标签解释回车/换行(没有 XHTML 模式)?

【问题讨论】:

    标签: label vaadin


    【解决方案1】:

    您可以通过以下方式将此文本放入标签中:

    @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 内容模式并将文本包含在 &lt;pre&gt; 标记内。

    【讨论】:

    • Label.CONTENT_XHTML - 已弃用。 从 7.0 开始,请改用 ContentMode.HTML
    【解决方案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 );
    

    这应该可以工作并且也很优雅。

    【讨论】:

      【解决方案3】:

      看完 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
      

      问候。

      埃里克

      【讨论】:

        猜你喜欢
        • 2014-07-10
        • 2013-07-26
        • 1970-01-01
        • 1970-01-01
        • 2017-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-06
        相关资源
        最近更新 更多