Frage

Ich möchte den Bildschirm um 30% und 70% vertikal teilen. Wie kann ich dies mit LWUit erreichen? Ich habe/ausprobiert GridLayout Aber es spaltet den Bildschirm gleich. Benötigen Sie dafür einen Beispielcode.

Danke im Voraus!

War es hilfreich?

Lösung

Beide anderen Antworten schließen beim Drehen des Bildschirms eines Geräts fehl.

Sie können zwei Ansätze verfolgen und ein Tabellenlayout verwenden, das die prozentuale Verteilung der Layoutbeschränkungen unterstützt.

Oder eine Unterklasse von erstellen Contaienr das überschreibt die calcPreferredSize Methode und gibt eine Dimension von 30 oder 70 Prozent entsprechend zurück. Dann fügen Sie einfach beide zu a hinzu BoxLayout Container und verwenden Sie wie gewünscht, zB:

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

Andere Tipps

Erstellen Sie eine Klasse, die den Container ableitet:

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

Fügen Sie dann Komponenten dieser Klasse in Ihrer Form hinzu:

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

Sie können sogar a einstellen backgroundPainter in die geteilte Klasse, um die Spaltung visuell anzuzeigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top