DoJaからStarに書き換える
では、DoJaとStarでは、ソースコードはどのように違っているのでしょうか。実際に簡単なiアプリを使って違いを見てみましょう。例として、「SampleIApp」というプロジェクトを作成し、SampelIApp.javaにSampelIAppクラスを書いて、簡単なiアプリを動かしてみます。
import com.nttdocomo.ui.*;
public class SampleIApp extends IApplication {
public void start() {
Display.setCurrent((Frame)new MainPanel());
}
}
class MainPanel extends Panel
implements SoftKeyListener {
Label label;
TextBox text;
MainPanel() {
this.setSoftKeyListener(this);
this.setSoftLabel(Frame.SOFT_KEY_1, "Click");
this.setSoftLabel(Frame.SOFT_KEY_2, "Exit");
this.setTitle("Start IApplication");
HTMLLayout html = new HTMLLayout();
this.setLayoutManager(html);
html.begin(HTMLLayout.CENTER);
label = new Label("こんにちは。");
this.add(label);
html.br();
text = new TextBox("入力フィールド",20,2,TextBox.DISPLAY_ANY);
this.add(text);
html.end();
}
public void softKeyPressed(int key){
switch (key) {
case Frame.SOFT_KEY_1:
label.setText(text.getText());
break;
case Frame.SOFT_KEY_2:
IApplication.getCurrentApp().terminate();
break;
}
}
public void softKeyReleased(int key) {}
}
これは、今までのDoJaによるiアプリですね。Panelを使い、ごく簡単な入力と、ソフトキーによる表示の変更などを用意してあります。まぁ、ごくごく単純なPanel利用のサンプルといっていいでしょう。
では、これをStar用に書き直してみましょう。わかりやすいように、プロジェクト名(ソースコードファイル名、クラス名など)はすべて同じものにしてあります。Star用開発ツールでは、プロジェクトやソースコードを作成する際、フルアプリかミニアプリかを指定する必要がありますので、この点だけ注意しましょう。今回は、DoJaと同じものを作る関係上、フルアプリとして作成をします。
Star向け開発ツールでプロジェクトを作る。ここではフルアプリを選択する。 |
import com.docomostar.*;
import com.docomostar.ui.*;
public class SampleIApp extends StarApplication {
public void started(int launchType) {
Display.setCurrent((Frame)new MainPanel());
}
}
class MainPanel extends Panel
implements SoftKeyListener {
Label label;
TextBox text;
MainPanel() {
this.setSoftKeyListener(this);
this.setSoftLabel(Frame.SOFT_KEY_1, "Click");
this.setSoftLabel(Frame.SOFT_KEY_2, "Exit");
this.setTitle("Start IApplication");
HTMLLayout html = new HTMLLayout();
this.setLayoutManager(html);
html.begin(HTMLLayout.CENTER);
label = new Label("こんにちは。");
this.add(label);
html.br();
text = new TextBox("入力フィールド",20,2,TextBox.DISPLAY_ANY);
this.add(text);
html.end();
}
public void softKeyPressed(int key){
switch (key) {
case Frame.SOFT_KEY_1:
label.setText(text.getText());
break;
case Frame.SOFT_KEY_2:
StarApplication.getThisStarApplication().terminate();
break;
}
}
public void softKeyReleased(int key) {}
}
いかがですか? なんだか、ほとんど同じものであることがわかるでしょう?