baselistdemo.java

来自「JAVA编程百例书中各章节的所有例子的源代码,包括套接字编程」· Java 代码 · 共 53 行

JAVA
53
字号
package ch09.section01;

import javax.microedition.lcdui.*;

//BaseListDemo类为所有列表类控件的容器框架类,并且提供一个统一的返回按钮。
public abstract class BaseListDemo
    extends List
    implements CommandListener {
  //存储本实例中涉及到的所有按钮
  private Command[] commands = UIDemo.getDemoCommands();

  //获取与按钮匹配的事件
  private Runnable[] callbacks = UIDemo.getDemoActions();

  //获取与列表匹配的事件
  private Runnable[] listCallbacks;

  //构造器用于创建一个给定窗体标题的框架对象。
  public BaseListDemo(String title) {
    super(title, IMPLICIT);
    initCommands();
  }

  //构造器用于创建一个给定窗体标题的框架对象。
  public BaseListDemo(String title, String[] data) {
    super(title, IMPLICIT, data, null);
    initCommands();
  }

  //添加事件监听器
  private void initCommands() {
    setCommandListener(this);
    for (int iter = 0; iter < commands.length; iter++) {
      addCommand(commands[iter]);
    }
    listCallbacks = getListCallbacks();
  }

  //用于响应按钮事件
  public void commandAction(Command c, Displayable d) {
    for (int iter = 0; iter < commands.length; iter++) {
      if (commands[iter] == c) {
        callbacks[iter].run();
        return;
      }
    }
    //用于响应列表事件
    listCallbacks[getSelectedIndex()].run();
  }

  protected abstract Runnable[] getListCallbacks();
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?