Java me LUIT表格布局嵌入文本区域

Java me LUIT表格布局嵌入文本区域,java-me,lwuit,Java Me,Lwuit,我的目标是通过解析XML文件来显示表 我使用的是SAX解析器,内容有多行,我想要 将表格宽度调整为适合显示器。当然Y_轴滚动也可以 现在,我正在使用src/com/sun/lwuit/html/的HTMLTable模型及其对应的HTMLTable。为此,我声明它的方法是公共的,因此我可以访问它们。到目前为止,这一切都很好。这允许我在不过早知道表大小的情况下声明表 为了允许多行,我在单元格中嵌入文本区域 现在问题是:HTMLTable t需要t.setScrollableY(true),否则不会显

我的目标是通过解析XML文件来显示表

我使用的是SAX解析器,内容有多行,我想要 将表格宽度调整为适合显示器。当然Y_轴滚动也可以

现在,我正在使用src/com/sun/lwuit/html/的HTMLTable模型及其对应的HTMLTable。为此,我声明它的方法是公共的,因此我可以访问它们。到目前为止,这一切都很好。这允许我在不过早知道表大小的情况下声明表

为了允许多行,我在单元格中嵌入文本区域

现在问题是:HTMLTable t需要
t.setScrollableY(true)
,否则不会显示所有行

这会导致表格在X方向有点过大,因此不会显示右边框。 此外,底部边框并非始终显示

嵌入表的容器具有BorderLayout.Y_轴。 我尝试过的事情:
t.setPreferredW(mainContainer.getLayoutWidth())这确实减少了表的大小,但是表不会显示它的所有行,比如不显示
t.setScrollableY(true)。

t.setLayout(新的BoxLayout(BoxLayout.Y_轴))
这会导致
java/lang/ClassCastException

有什么想法吗?提前谢谢

摘自我的代码:

} else if (qName.equalsIgnoreCase("td")) {

                    if (sb.length() > 0) {
                        String sbt = new String(sb);
                        sb.delete(0, sb.length());
                        TextArea c = new TextArea(sbt);
                        c.setEditable(false);
                        c.getStyle().setFont(smallFont);
                        table.addCell(c, false, null);
                    }
                } else if (qName.equalsIgnoreCase("tr")) {
                    debugPrint("Row closed.");
                    table.commitRow();
                } else if (qName.equalsIgnoreCase("table")) {
                    HTMLTable t = new HTMLTable(table);
                    //without scrollable Y not all table rows are shown
                    t.setScrollableY(true);
                    //t.setPreferredW(screenWidth);
                    //this is verboten.
                    t.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
                    mainContainer.addComponent(t);
                    tableBool = false;

不能从表布局更改表的布局,否则它将不是表

通过将宽度百分比分配给最多为100%的表格列,可以使表格填充父BoxLayout_Y的宽度,例如,对于3列表格返回,分配33、33和44

这可以通过对表进行子类化和重写方法来实现:

protected TableLayout.Constraint createCellConstraint(Object value, int row, int column) {
    TableLayout.Constraint c = super.createCellConstraint(value, row, column);
    c.setWidthPercentage(whateverYouWant);
    return c;
}

不能从表布局更改表的布局,否则它将不是表

通过将宽度百分比分配给最多为100%的表格列,可以使表格填充父BoxLayout_Y的宽度,例如,对于3列表格返回,分配33、33和44

这可以通过对表进行子类化和重写方法来实现:

protected TableLayout.Constraint createCellConstraint(Object value, int row, int column) {
    TableLayout.Constraint c = super.createCellConstraint(value, row, column);
    c.setWidthPercentage(whateverYouWant);
    return c;
}