コンポーネントとイベントリスナーを使う (3/6)
作成:2009-12-29 19:00
更新:2009-12-29 19:00
更新:2009-12-29 19:00
■HTMLLayoutを使う
実際に表示されたiアプリの画面を見ると、予想していたものとは違っていた、という人もいることでしょう。見たところ、LabelとTextBoxが横に並んで表示されています。Labelに表示される文字の長さによって、TextBoxが次の行にずれたりします。
これは、AWTのFlowLayoutと同様に、単にaddしたコンポーネントを横方向に並べて配置しているだけであるからです。Panelでは、部品をaddすると、現在組み込んでいる部品の横に置けそうなら隣に置くし、置けそうになければ次の行の左端から表示をします。つまり、表示する部品の横幅によって適当に置かれる場所が変わってしまうのです。AWTのFlowLayoutのようになっている、と考えればよいでしょう。
レイアウトの仕方を変更するためには、「LayoutManager」というクラスを使います。これは文字通りレイアウトを調整するもので、AWTのレイアウトマネージャと同様の働きをするものと考えてよいでしょう。ただし、AWTほどさまざまなレイアウトマネージャはありません。標準で使えるのは「HTMLLayout」というものぐらいです。では、このHTMLLayoutを使ってレイアウトを少し調整しましょう。
これは、AWTのFlowLayoutと同様に、単にaddしたコンポーネントを横方向に並べて配置しているだけであるからです。Panelでは、部品をaddすると、現在組み込んでいる部品の横に置けそうなら隣に置くし、置けそうになければ次の行の左端から表示をします。つまり、表示する部品の横幅によって適当に置かれる場所が変わってしまうのです。AWTのFlowLayoutのようになっている、と考えればよいでしょう。
レイアウトの仕方を変更するためには、「LayoutManager」というクラスを使います。これは文字通りレイアウトを調整するもので、AWTのレイアウトマネージャと同様の働きをするものと考えてよいでしょう。ただし、AWTほどさまざまなレイアウトマネージャはありません。標準で使えるのは「HTMLLayout」というものぐらいです。では、このHTMLLayoutを使ってレイアウトを少し調整しましょう。
(by. SYODA-Tuyano.)
※プログラムリストが表示されない場合
AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。
●プログラム・リスト●
class MainPanel extends Panel {
private Label label;
private TextBox text;
MainPanel() {
this.setSoftLabel(Frame.SOFT_KEY_1, "CLIK");
this.setSoftLabel(Frame.SOFT_KEY_2, "EXIT");
setTitle("Start IApplication");
label = new Label("何か書いて!");
text = new TextBox("入力フィールド", 20, 2,
TextBox.DISPLAY_ANY);
HTMLLayout layout = new HTMLLayout();
this.setLayoutManager(layout);
layout.begin(HTMLLayout.CENTER);
this.add(label);
layout.br();
this.add(text);
layout.end();
}
}
※関連コンテンツ