Question

Je veux diviser l'écran de 30% et 70% verticalement, Comment puis-je parvenir avec LWUIT? J'ai utilisé / essayé GridLayout mais il divise l'écran également. Besoin d'un exemple de code pour cela.

Merci à l'avance!

Était-ce utile?

La solution

Les deux autres réponses échouera lors de la rotation de l'écran d'un dispositif.

Vous pouvez prendre deux approches, utilisez une mise en page de table qui prend en charge la répartition en pourcentage des contraintes de mise en page.

ou de créer une sous-classe de Contaienr qui substitue la méthode calcPreferredSize et renvoie une dimension de 30 ou 70 pour cent de manière appropriée. Ensuite, il suffit d'ajouter les deux à un conteneur de BoxLayout et l'utilisation comme souhaité par exemple:.

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

Autres conseils

Créer une classe qui dérive de conteneurs:

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

Ensuite, ajouter des composants de cette classe dans votre formulaire:

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

Vous pouvez même définir un backgroundPainter à la classe pour montrer visuellement divisé la division.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top