2008年9月13日土曜日

iアプリ 今日は Panel


また、サンプルのお世話になります。
http://omori.cside.com/java/javai34.htm
http://omori.cside.com/java/java92.htm#s6
スクラッチパッドも追加
http://omori.cside.com/java/java95.htm

高レベルAPI Panel編です。

iαppliTool for DoJa-5.1(FOMA)を起動して、新規作成。
前回よくわからず、いきなり新規作成するとPanelのテンプレートができて、
Panelの部分を削除して作った。
いまになって、Canvasのテンプレートを選択すればよかったことに気づく。

今回は、
テンプレート使用
フレームの種別:Panel
キーリスナを追加

で作成した。

今日理解したこと
  1. implement でクラス内の名前空間を追加
  2. switch文はintだけ
  3. static はクラスから参照できる
  4. IApplication.getCurrentApp() でアプリケーションを取得

/*
* second.java
*
* DATE : 2008/09/13 10:35
*/
import com.nttdocomo.ui.IApplication;
import com.nttdocomo.ui.Display;
import com.nttdocomo.ui.Panel;
import com.nttdocomo.ui.Frame;

import com.nttdocomo.ui.Component;
import com.nttdocomo.ui.Label;
import com.nttdocomo.ui.Button;
import com.nttdocomo.ui.TextBox;
import com.nttdocomo.ui.ListBox;
import com.nttdocomo.ui.MediaImage;
import com.nttdocomo.ui.Image;
import com.nttdocomo.ui.MediaManager;
import com.nttdocomo.ui.ImageLabel;
import com.nttdocomo.ui.ComponentListener;

import com.nttdocomo.io.*;
import javax.microedition.io.*;
import java.io.*;

import com.nttdocomo.ui.KeyListener;
import com.nttdocomo.ui.SoftKeyListener;

/**
* second
*
* @author NAME
*/

public class second extends IApplication {

public void start() {
/*
* The program of IApplication is written here.
*/
Display.setCurrent((Frame)new MainPanel());
}
}

/**
* MainPanel
*
*/
class MainPanel extends Panel implements KeyListener,SoftKeyListener,ComponentListener{
private IApplication app;
private Label w_label;
private ImageLabel w_imagelabel;
private Button w_button1, w_button2, w_button;
private ListBox w_listbox;
private TextBox w_textbox;
private String ww_textbox;

MainPanel() {
app = IApplication.getCurrentApp();

setTitle("Start IApplication");
// パネルに追加
add(new Label("ラベル"));

// メディアイメージを取得
// MediaImage w_media = MediaManager.getImage("resource:///image.gif");
// try {
// w_media.use();
// } catch (ConnectionException ce) {}
// Image w_image = w_media.getImage();
// イメージオブジェクトをもつイメージラベルを作成
// w_imagelabel = new ImageLabel(w_image);
// パネルに追加
// add(w_imagelabel);

// ボタン作成
w_button1 = new Button("ボタン1");
add(w_button1);
w_button2 = new Button("ボタン2");
add(w_button2);

// リストボックス作成 ※ラジオボタンの例
w_listbox = new ListBox(ListBox.RADIO_BUTTON);
w_listbox.append("ラジオボタン1");
w_listbox.append("ラジオボタン2");
// パネルに追加
add(w_listbox);

// テキストボックス
w_textbox = new TextBox("テキストボックス", 20, 1, TextBox.DISPLAY_ANY);
// パネルに追加
add(w_textbox);

// ボタン作成
w_button = new Button("ScratchPad読込");
// パネルに追加
add(w_button);
setSoftLabel(SOFT_KEY_1,"終了");
setSoftLabel(SOFT_KEY_2,"保存");

// イベントリスナーのインスタンス登録
// コンポーネントリスナー
setComponentListener(this);
setSoftKeyListener((SoftKeyListener)this);

setKeyListener((KeyListener)this);
}

// コンポーネントイベント発生時に実行
public void componentAction(Component w_component, int w_type, int w_param){
// "ボタン"が押された時に実行
if(w_type == BUTTON_PRESSED){
if (w_component == w_button) {
load();
}else if (w_component == w_button1) {
w_textbox.setText("ボタン1が押された");
}else if (w_component == w_button2) {
w_textbox.setText("ボタン2が押された");
}
}
}

public void softKeyPressed(int softKey) {
}

public void softKeyReleased(int softKey) {
switch(softKey) {
case SOFT_KEY_1:
app.terminate();
break;
case SOFT_KEY_2:
// テキストボックスからデータを受取
ww_textbox = w_textbox.getText();
// 保存
save();
break;
}
}

public void keyPressed(Panel panel, int key) {
}

public void keyReleased(Panel panel, int key) {
switch (key) {
case Display.KEY_1:
IApplication.getCurrentApp().terminate();
break;
case Display.KEY_2:
break;
case Display.KEY_3:
break;
default:
break;
}
}

//---------------------------------------------------------------------#
// 保存データ読み込み
//---------------------------------------------------------------------#
private void load(){
try{
// scratchpadから、テキストデータを読込
DataInputStream w_datainput =
Connector.openDataInputStream("scratchpad:///0");
ww_textbox = w_datainput.readUTF();
w_datainput.close();
}catch(IOException ie){
System.out.println("load err!!");
}
// データをパネルに表示
w_textbox.setText(ww_textbox);
}

//---------------------------------------------------------------------#
// データ保存
//---------------------------------------------------------------------#
public void save(){
try{
// テキストデータを、scratchpadに書込
DataOutputStream w_dataoutput =
Connector.openDataOutputStream("scratchpad:///0");
w_dataoutput.writeUTF(ww_textbox);
w_dataoutput.close();
}catch(IOException ie) {
System.out.println("save err!!");
}
}
}

0 件のコメント: