如何在lwuit(J2ME)中显示多行textAreas?

时间:2011-07-22 06:22:30

标签: java java-me lwuit

我创建了一个带有声明的TextArea ....

quest1Label = new TextArea();

我正在使用TextArea来显示Labels ....所以我使用以下函数来设置其属性....

private void setTextAreaProperty(TextArea textArea) {
    String textStr = textArea.getText();
    if (textArea.getStyle().getFont().stringWidth(textStr) > (width - 25)) {
        textArea.setSingleLineTextArea(false);
    } else {
        textArea.setSingleLineTextArea(true);
        textArea.setPreferredW(width);
    }
    textArea.setBorderPainted(false);
    textArea.setFocusable(false);
    textArea.setStyle(getPreviewStyle());
}

其中 width = Display.getInstance()。getDisplayWidth(); 我的问题是,最多两行标签正常工作,但....如果文字更大,它不会到第三行。 任何有关这方面的帮助将不胜感激。

先谢谢,....

2 个答案:

答案 0 :(得分:7)

您需要使用TextArea构造函数,例如new TextArea(1, 20),这样可以让布局更有效地“增长”。

原因主要是历史性的,LWUIT有{3}的默认值TexAarea允许TexAarea缩小,但在成长时很糟糕。增长/缩小的复杂性源于布局可以深度嵌套和可滚动的事实,因此可用空间与期望空间计算变得递归并且在某些难以检测的点处无法解决(无限递归)。

答案 1 :(得分:2)

你试过setGrowByContent吗?也许默认的行数是2,并且它不会增长得多。

问候。