2

画面を垂直方向に30%と70%に分割したいのですが、lwuitでこれを実現するにはどうすればよいですか?使用/試しGridLayoutましたが、画面が均等に分割されます。このためのサンプルコードが必要です。

前もって感謝します!

4

2 に答える 2

2

デバイスの画面を回転させると、他の両方の答えが失敗します。

2つのアプローチを取ることができます。レイアウト制約のパーセンテージ分散をサポートするテーブルレイアウトを使用します。

Contaienrまたは、メソッドをオーバーライドしてcalcPreferredSize30または70パーセントのディメンションを適切に返すサブクラスを作成します。次に、両方をBoxLayoutコンテナに追加して、必要に応じて使用します。例:

Container c30 = new Container() {
      public Dimension calcPreferredSize() {
          new Dimension(Display.getInstance().getPreferredHeight(), (int)(Display.getInstance().getPreferredWidth() * 0.7));
      }
};
于 2011-12-01T06:47:34.860 に答える
-1

Containerを派生させるクラスを作成します。

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分割を視覚的に表示するために、分割クラスにを設定することもできます。

于 2011-11-30T12:01:00.543 に答える