按比例分屏 LWUIT

发布于 2024-12-18 18:21:21 字数 99 浏览 1 评论 0原文

我想将屏幕垂直分割为 30% 和 70%,如何使用 lwuit 实现此目的?我使用/尝试过 GridLayout 但它均匀地分割屏幕。为此需要一个示例代码。

提前致谢!

I want to split the screen by 30% and 70% vertically, How can i achieve this with lwuit? I used/tried GridLayout but it splits the screen equally. Need a example code for this.

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

记忆之渊 2024-12-25 18:21:21

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

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

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

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

Both other answers will fail when rotating the screen of a device.

You can take two approaches, use a table layout which supports percentage distribution of layout constraints.

Or create a subclass of Contaienr that overrides the calcPreferredSize method and returns a dimension of 30 or 70 percent appropriately. Then just add both of them to a BoxLayout container and use as desired e.g.:

Container c30 = new Container() {
      public Dimension calcPreferredSize() {
          new Dimension(Display.getInstance().getPreferredHeight(), (int)(Display.getInstance().getPreferredWidth() * 0.7));
      }
};
山人契 2024-12-25 18:21:21

创建一个派生 Container 的类:

public class split extends Container {
    public split(int h)
    {
        super();  // you can set your layout type here
        setPreferredH(h);
    }
}

然后在您的 Form 中添加该类的组件:

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 以直观地显示拆分。

Create a class which derives Container :

public class split extends Container {
    public split(int h)
    {
        super();  // you can set your layout type here
        setPreferredH(h);
    }
}

Then add components of this class in your Form :

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);
    }
}

You can even set a backgroundPainter to the split class to show visually the splitting.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文