Сплит экран пропорционально LWUIT - PullRequest
2 голосов
/ 30 ноября 2011

Я хочу разделить экран на 30% и 70% по вертикали. Как я могу добиться этого с помощью lwuit?Я использовал / попробовал GridLayout, но он разделяет экран поровну.Нужен пример кода для этого.

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Оба других ответа не удастся при повороте экрана устройства.

Вы можете использовать два подхода, использовать макет таблицы, который поддерживает процентное распределение ограничений макета.

Или создать подкласс Contaienr, который переопределяет метод calcPreferredSize и возвращает измерение30 или 70 процентов соответственно.Затем просто добавьте их обоих в контейнер BoxLayout и используйте по желанию, например:

Container c30 = new Container() {
      public Dimension calcPreferredSize() {
          new Dimension(Display.getInstance().getPreferredHeight(), (int)(Display.getInstance().getPreferredWidth() * 0.7));
      }
};
0 голосов
/ 30 ноября 2011

Создайте класс, который получает контейнер:

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 для класса разделения, чтобы визуально показать разделение.

...