画面作成の流れを整理する
では、作成したHeloAppの処理を見ていきましょう。ここでは「init」というメソッドが1つだけ用意されています。これはApplicationInstanceに用意されているメソッドで、インスタンスの初期化処理を行うためのものです。ここで、表示するWebページの内容を作成しておけばよいのです。ApplicationInstanceのGUI表示は、いくつかのクラスの組み合わせによって作成されます。基本的な構成を整理すると以下のようになります。
- まず、Windowクラスのインスタンスを用意します。これが、表示されるGUI画面のコンテナとなります。
- ContentPaneを用意し、Windowに設定します。このContentPane内に、表示されるコンポーネントを組み込みます。ただし、このContentPaneに組み込むコンポーネントは基本的に1つです。複数のコンポーネントを組み込む場合は、そのためのコンテナを用意します。
- 今回は、Columnというクラスのインスタンスを用意し、ContentPaneに組み込んでいます。このColumnは、複数のコンポーネントを縦に並べて配置するコンテナです。
- Columnに表示するコンポーネントを作成し、組み込んでいきます。今回は、テキストを表示するLabelインスタンスを用意しています。
このように、いくつもの部品が組み合わせられて画面を構成しています。Window・ContentPaneは、どのような場合でも必ず用意する必須オブジェクトです。そして、Column・Labelは、今回の「複数のテキストを縦に並べて表示する」というためのコンテナ・コンポーネントとなるわけです。これらのコンポーネントは、コンテナの「add」メソッドを使って順に組み込んでいきます。
コンポーネントのプロパティについて
コンポーネントは、それぞれ表示や動作に関するプロパティをもっており、それらを設定することで表示や振る舞いを変更することができます。今回、使用しているプロパティについて以下に整理しておきましょう。
背景色
これは、backgroundというプロパティとして用意されており、「setBackground」メソッドで設定することができます。引数にはColorインスタンスを渡します。ただし、これはjava.awt.Colorではないので注意してください。nextapp.echo.app.Colorという、Echo用に独自に用意されたColorクラスを使用します。使い方は、java.awt.Colorとほぼ同じなので迷うことはないでしょう。
フォント
これは、fontプロパティとして用意されており「setFont」メソッドで設定できます。これも、やはりnextapp.echo.app.Fontという独自に用意されているクラスを使って設定します。このFontは、java.awt.Fontと引数が微妙に異なるので注意が必要です。
new Font( Typeface , int , Extent )
第1引数はフォントの種類を指定するもので、これは「Typeface」というクラスのインスタンスを用意します。Fontクラスには、あらかじめよく用いられるTypefaceがクラスフィールドとして用意されており、それを利用して値を指定します。第2引数にはスタイルを示すint値を用意します。これもFontクラスにあるクラスフィールドを使って指定するのが基本です。第3引数にはフォントの大きさを示す「Extent」クラスのインスタンスを用意します。これは、引数にフォントの大きさを示すintを用意してnew Extentします。
いかがですか。ざっとコンポーネントの作成から組み込みまでを見てみましたが、awt/Swingなどのコンポーネントの組み込みと非常によく似ていることが分かるでしょう。また使用するクラスなども、awtではなく独自に用意されているとはいえ、使い方はawtのものとそっくりです。すでにJavaのawt/Swingを使っていれば、基本的な使い方はすぐに習得できるでしょう。
