また、サンプルのお世話になります。
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
キーリスナを追加
で作成した。
今日理解したこと
- implement でクラス内の名前空間を追加
- switch文はintだけ
- static はクラスから参照できる
- 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 件のコメント:
コメントを投稿