Mobile:NEWS 2002年9月13日 10:13 PM 更新

ビジネスiアプリ入門(5)
待ち受けビジネスIMのクライアント(iアプリ)の作成(3/4)


前のページ

状態表示画面

 状態表示画面(StateViewPanel)には、2つの機能を持たせます。1つは初回登録と同様にソフトキーによって画面遷移する機能で、もう1つは一定時間置きに状態の更新とメッセージの受信をする機能です。

 ソフトキーによって、状態の更新画面(ChangeStatePanel)とメッセージの送信画面(SendMessagePanel)に遷移します。

class StateViewPanel extends Panel implements SoftKeyListener, Runnable {
 ListBox memberview;
 StateViewPanel() {
  setTitle("ビジネスIM");

  memberview = new ListBox(ListBox.SINGLE_SELECT, 6);
  memberview.setItems(data.getMemberNames());
  add(memberview);

  // ソフトキーのラベルを設定し、ソフトキー受け取りを有効にする
  setSoftLabel(Frame.SOFT_KEY_1, "状態"); // 状態変更
  setSoftLabel(Frame.SOFT_KEY_2, "送信"); // メッセージ送信
  setSoftKeyListener(this);
  Display.setCurrent(this);

  // 一定時間置きに更新するスレッドを起動する
  new Thread(this).start();
 }
 public void softKeyPressed(int key) {
  if (key == Frame.SOFT_KEY_1) { // 状態変更
   new ChangeStatePanel(this);
  } else if (key == Frame.SOFT_KEY_2) { // メッセージ送信
   new SendMessagePanel(this);
  }
 }
 public void softKeyReleased(int key) {
 }

 // 一定時間置きに更新するスレッド処理
 public void run() {
  for (;;) {
   if (Display.getCurrent() == this) {
    Message[] message = network.update(data); // dataを更新する
    writeData(data); // dataをスクラッチパッドに書き出す
    memberview.setItems(data.getMemberNames()); // dataを画面に反映する
    new ReceiveMessagePanel(this, message);
   }
   try {
    Thread.sleep(10 * 1000); // 10秒待ち
   } catch (Exception e) {
   }
  }
 }


状態表示画面

 前半部分は初回登録画面とほぼ同じですが、スレッドを生成し起動することで、一定時間おきに更新処理をさせています。更新後にデータをスクラッチパッドに書き出す処理をした後と、メッセージ表示画面(ReceiveMessagePanel)に遷移させます。

状態変更画面

 状態変更画面(ChangeStatePanel)は、状態表示画面(StateViewPanel)から遷移してきます。状態の選択にはListBoxを使い、あらかじめSTATE_LISTで設定した状態の中から選択するようにします。ソフトキーが押された場合、OKであれば状態変更処理をした後、指定された画面(今回の場合状態表示画面(StateViewPanel))に戻ります。

class ChangeStatePanel extends Panel implements SoftKeyListener {
 Panel back;

 ListBox state;
 String[] STATE_LIST = { "仕事中", "休憩中", "会議中", "外出中", "帰宅" };
 ChangeStatePanel(Panel back) {
  this.back = back;

  setTitle("状態変更");

  add(new Label("状態"));
  state = new ListBox(ListBox.CHOICE);
  state.setItems(STATE_LIST);
  state.select(0);
  add(state);

  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 st = state.getItem(state.getSelectedIndex());
   network.sendState(data.myname, st);
  }
  Display.setCurrent(back);
 }
 public void softKeyReleased(int key) {
 }
}


状態変更画面

[福野泰介, ITmedia]

Copyright © ITmedia, Inc. All Rights Reserved.

前のページ | 3/4 | 次のページ



モバイルショップ

最新CPU搭載パソコンはドスパラで!!
第3世代インテルCoreプロセッサー搭載PC ドスパラはスピード出荷でお届けします!!

最新スペック搭載ゲームパソコン
高性能でゲームが快適なのは
ドスパラゲームパソコンガレリア!