2
            Form containerForm=new Form(filename);

            StringItem label1 = new StringItem("","Test\nTest2\nTest3");
            StringItem label2 = new StringItem("","Test\nTest2\nTest3");

            label2.setLayout(Item.LAYOUT_LEFT|Item.LAYOUT_TOP|Item.LAYOUT_SHRINK  );
            label2.setLayout(Item.LAYOUT_RIGHT|Item.LAYOUT_TOP|Item.LAYOUT_SHRINK );


            containerForm.append(label1);
            containerForm.append(label2);

            display.setCurrent(containerForm);

此代码产生:

我想要它,所以两个 StringItems 彼此相邻,并且 test 与 test 对齐,依此类推。

我还尝试将两个字符串项合并为一个,并在它们之间添加一个制表符 (\t)。然而,标签化为乌有。

4

3 回答 3

1

如果您使用的是 MIDP 2,那么LAYOUT_2除了您已经设置的指令之外还设置会更安全。根据我对 API 规范的回忆,没有这个标志的设备可能(甚至应该)落入 MIDP 1 布局风格,而忽略你宝贵的TOPSHRINK.

还可以考虑使用Item.setPreferredWidth(containerForm.getWidth()/3)来明确表示您希望它不会太宽。愚蠢的设备似乎有很小(但非零)的机会认为您的字符串项目的首选宽度是屏幕的宽度,这反过来又以某种方式推翻了收缩指令。

于 2011-07-29T05:54:12.267 回答
0

使用 LWUIT 使用 GridLayout

http://lwuit.java.net/tutorial/layouts.html

于 2011-07-13T07:08:17.723 回答
0

Java ME 使用行布局,这意味着您添加的每个项目都会添加到 GUI 的下一行。您需要类似 GridLayout 之类的东西,而 Java ME 中没有。也许您必须编写自己的包含两个标签的项目。与此处类似。这是关于 Java ME 中 Gridlayouts 的 stackoverflow 问题:Table or gridlayout in J2ME

于 2011-07-13T07:02:48.620 回答