如何在表单上连续两个项目相邻?

时间:2011-07-13 03:58:28

标签: java-me midp lcdui

            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紧挨着彼此,测试与测试结合,依此类推。

我也尝试将两个字符串组合成一个并在它们之间添加一个制表符(\ t)。然而,标签变成了什么。

3 个答案:

答案 0 :(得分:1)

如果你在MIDP 2上,除了你已设置的指令外,还设置LAYOUT_2会更安全。根据我对API规范的回忆,没有这个标志设备可能(或者甚至应该)落入MIDP 1布局样式而忽略了您宝贵的TOPSHRINK

还要考虑使用Item.setPreferredWidth(containerForm.getWidth()/3)明确指出您希望它不会太宽。愚蠢的设备认为你的字符串项目的首选宽度是屏幕的宽度,而不知何故否决缩小指令似乎很小(但非零)。

答案 1 :(得分:0)

Java ME使用行布局,这意味着您添加的每个项目都会添加到GUI的下一行。您需要类似GridLayout的东西,这在Java ME中是不可用的。也许你必须编写自己的包含两个标签的Item。与here相似。以下是Java ME中Gridlayouts的stackoverflow问题:Table or gridlayout in J2ME

答案 2 :(得分:0)

使用LWUIT

使用GridLayout

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