Java me 按比例分屏

Java me 按比例分屏,java-me,lwuit,lwuit-textarea,lwuit-layouts,Java Me,Lwuit,Lwuit Textarea,Lwuit Layouts,我想将屏幕垂直分为30%和70%,如何使用lwuit实现这一点?我使用/尝试了GridLayout,但它将屏幕平均分割。需要一个示例代码 提前谢谢 创建一个派生容器的类: public class split extends Container { public split(int h) { super(); // you can set your layout type here setPreferredH(h); } } 然后在表单

我想将屏幕垂直分为30%和70%,如何使用lwuit实现这一点?我使用/尝试了
GridLayout
,但它将屏幕平均分割。需要一个示例代码


提前谢谢

创建一个派生容器的类:

public class split extends Container {
    public split(int h)
    {
        super();  // you can set your layout type here
        setPreferredH(h);
    }
}
然后在表单中添加此类的组件:

public class e extends Form {
    private Container c1, c2;
    private TextField f1,f2;
    public e()
    {
        super("test split");
        c1 = new split(30*getPreferredH()/100);
        c2 = new split(70*getPreferredH()/100);
        f1 = new TextField("ghgjhg");
        f2 = new TextField("jkdhuhg");
        c1.addComponent(f1);
        c2.addComponent(f2);
        setLayout(new BoxLayout(BoxLayout.Y_AXIS));
        addComponent(c1);
        addComponent(c2);
    }
}

您甚至可以将
backgroundPainter
设置为split类,以直观地显示拆分。

旋转设备屏幕时,其他两个答案都将失败

您可以采取两种方法,使用支持布局约束百分比分布的表布局

或者创建
Contaienr
的子类,该子类重写
calcPreferredSize
方法,并相应地返回30%或70%的维度。然后只需将它们添加到
BoxLayout
容器中,并根据需要使用,例如:

Container c30 = new Container() {
      public Dimension calcPreferredSize() {
          new Dimension(Display.getInstance().getPreferredHeight(), (int)(Display.getInstance().getPreferredWidth() * 0.7));
      }
};