Mobile:NEWS |
2002年10月11日 11:43 PM 更新
|
ビジネスiアプリ入門(9)
待ち受けビジネスIMの改良(2/3)
前のページ
続いて状態編集クラス(EditStatePanel)を作成します。作り方はほかのパネル表示クラスと同様です。状態はListBoxコンポーネントをそのまま渡し、OKが押されたらスクラッチパッドに書き込み、そのListBoxコンポーネントに値をセットして戻ります。
class EditStatePanel extends Panel implements SoftKeyListener {
Panel back;
TextBox[] tb;
ListBox state;
EditStatePanel(Panel back, ListBox state) {
setKeyListener(A.this);
this.back = back;
this.state = state;
setTitle("状態編集");
tb = new TextBox[state.getItemCount()];
for (int i = 0; i < tb.length; i++) {
tb[i] = new TextBox(state.getItem(i), 30, 1, TextBox.DISPLAY_ANY);
add(tb[i]);
}
setSoftLabel(Frame.SOFT_KEY_1, "OK");
setSoftLabel(Frame.SOFT_KEY_2, "中止");
setSoftKeyListener(this);
Display.setCurrent(this);
}
public void softKeyPressed(int key) {
if (key == Frame.SOFT_KEY_1) {
String[] statestr = new String[tb.length];
for (int i = 0; i < statestr.length; i++) {
statestr[i] = tb[i].getText();
}
writeState(statestr);
state.setItems(statestr);
}
Display.setCurrent(back);
}
public void softKeyReleased(int key) {
}
}
最後に、状態変更クラス(ChangeStatePanel)を以下のように編集し、状態編集クラス(EditStatePanel)と接続します。スクラッチパッドに状態が記述されていない場合はデフォルトの状態をセットすることとします。また状態編集はボタンになっており、ボタンが押されたかどうかはComponentListenerを使用します。
class ChangeStatePanel extends Panel implements SoftKeyListener, ComponentListener {
Panel back;
ListBox state;
String[] STATE_LIST = { "仕事中", "休憩中", "会議中", "外出中", "帰宅" };
ChangeStatePanel(Panel back) {
setKeyListener(A.this);
this.back = back;
String[] statelist = readState();
if (statelist == null)
statelist = STATE_LIST;
setTitle("状態変更");
add(new Label("状態"));
state = new ListBox(ListBox.CHOICE);
state.setItems(statelist);
state.select(0);
add(state);
add(new Button("状態編集"));
setSoftLabel(Frame.SOFT_KEY_1, "OK");
setSoftLabel(Frame.SOFT_KEY_2, "中止");
setSoftKeyListener(this);
setComponentListener(this);
Display.setCurrent(this);
}
:
public void componentAction(Component source, int type, int param) {
if (type == ComponentListener.BUTTON_PRESSED)
new EditStatePanel(this, state);
}
}
状態編集実行画面
[福野泰介, ITmedia]
Copyright © ITmedia, Inc. All Rights Reserved.
前のページ
| 2/3 | 次のページ