亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? addressbookmidlet.java

?? 7個J2ME例子
?? JAVA
字號:
/* * Copyright (c) 2000-2001 Sun Microsystems, Inc. All Rights Reserved. */package examples.addressbook;import java.lang.*;import java.io.*;import java.util.*;import javax.microedition.lcdui.*;import javax.microedition.midlet.*;import javax.microedition.rms.*;/** * This MIDlet implements a simple address book with * the following functionality: browsing, entry, * deletion, and searching (both on device and over * the network). */public class AddressBookMIDlet extends MIDlet    implements CommandListener, ItemStateListener {    private RecordStore addrBook;    private static final int FN_LEN = 10;    private static final int LN_LEN = 20;    private static final int PN_LEN = 15;    final private static int ERROR = 0;    final private static int INFO = 1;    private Display display;    private Alert alert;    private Command cmdAdd;    private Command cmdBack;    private Command cmdCancel;    private Command cmdDial;    private Command cmdExit;    private Command cmdSelect;    private Command cmdSearchNetwork;    private Command cmdSearchLocal;    private List mainScr;    private String[] mainScrChoices = {"Search",                                       "Add New",                                       "Browse",                                       "Options" };    private Form searchScr;    private TextField s_lastName;    private TextField s_firstName;    private Form entryScr;    private TextField e_lastName;    private TextField e_firstName;    private TextField e_phoneNum;    private List nameScr;    private Vector phoneNums;    private Form optionScr;    private ChoiceGroup sortChoice;    private TextBox dialScr;    private int sortOrder = 1;    /**     * Public no-argument constructor. Called by the system to     * instantiate our class. Caches reference to     * the display, allocate commands, and tries to open     * the address book.     */    public AddressBookMIDlet() {        display = Display.getDisplay(this);        cmdAdd = new Command("Add", Command.OK, 1);        cmdBack = new Command("Back", Command.BACK, 2);        cmdCancel = new Command("Cancel", Command.BACK, 2);        cmdDial = new Command("Dial", Command.OK, 1);        cmdExit = new Command("Exit", Command.EXIT, 2);        cmdSelect = new Command("Select", Command.OK, 1);        cmdSearchNetwork = new Command("Network",                                       Command.SCREEN, 4);        cmdSearchLocal = new Command("Local", Command.SCREEN, 3);        alert = new Alert("", "", null, AlertType.INFO);        alert.setTimeout(2000);        try {            addrBook = RecordStore.openRecordStore("TheAddressBook",                                                true);        } catch (RecordStoreException e) {            addrBook = null;        }    }    /**     * Called by the system to start our MIDlet.     * If the open of the address book fails, display     * an alert and continue.     *     */	protected void startApp() {        if (addrBook == null) {            displayAlert(ERROR,                         "Could not open address book", null);        } else {            genMainScr();        }    }    /**     * Called by the system to pause our MIDlet.     * No actions required by our MIDlet.     */    protected void pauseApp() {}    /**     * Called by the system to end our MIDlet.     * No actions required by our MIDlet.     */    protected void destroyApp(boolean unconditional) {        if (addrBook != null) {            try {                addrBook.closeRecordStore();            } catch (Exception e) { }        }    }    /**     * Display an Alert on the screen     *	 * @param	type	One of the following: ERROR, INFO	 * @param	msg		Message to display	 * @param	s		screen to change to after displaying alert.     *         if null, revert to main screen     */    private void displayAlert(int type, String msg, Screen s) {        alert.setString(msg);        switch (type) {        case ERROR:            alert.setTitle("Error!");            alert.setType(AlertType.ERROR);            break;        case INFO:            alert.setTitle("Info");            alert.setType(AlertType.INFO);            break;        }        display.setCurrent(alert,                           s == null ? display.getCurrent() : s);    }    /**     * Notify the system that we are exiting.     */    private void midletExit() {        destroyApp(false);        notifyDestroyed();    }    /**     * Create the first screen of our MIDlet.     * This screen is a list.     */    private Screen genMainScr() {        if (mainScr == null) {            mainScr = new List("Menu",                               List.IMPLICIT,                               mainScrChoices,                               null);            mainScr.addCommand(cmdSelect);            mainScr.addCommand(cmdExit);            mainScr.setCommandListener(this);        }        display.setCurrent(mainScr);        return mainScr;    }    /**     * Sort order option screen.     * Allows us to set sort order to either sorting by     * last name (default), or first name.     */    private Screen genOptionScr() {        if (optionScr == null) {            optionScr = new Form("Options");            optionScr.addCommand(cmdBack);            optionScr.setCommandListener(this);            sortChoice = new ChoiceGroup("Sort by",                                         Choice.EXCLUSIVE);            sortChoice.append("First name", null);            sortChoice.append("Last name", null);            sortChoice.setSelectedIndex(sortOrder, true);            optionScr.append(sortChoice);            optionScr.setItemStateListener(this);        }        display.setCurrent(optionScr);        return optionScr;    }    /**     * Search screen.     *	 * Displays two <code>TextField</code>s: one for     * first name, and one for last name.     * These are used for searching the address book.     *     * @see AddressBookMIDlet#genNameScr     */    private Screen genSearchScr() {        if (searchScr == null) {            searchScr = new Form("Search");            searchScr.addCommand(cmdBack);            searchScr.addCommand(cmdSearchNetwork);            searchScr.addCommand(cmdSearchLocal);            searchScr.setCommandListener(this);            s_firstName = new TextField("First name:", "",                                        FN_LEN, TextField.ANY);            s_lastName = new TextField("Last name:", "",                                       LN_LEN, TextField.ANY);            searchScr.append(s_firstName);            searchScr.append(s_lastName);        }        s_firstName.delete(0, s_firstName.size());        s_lastName.delete(0, s_lastName.size());        display.setCurrent(searchScr);        return searchScr;    }    /**     * Name/Phone number entry screen     *	 * Displays three <code>TextField</code>s: one for     * first name, one for last name, and one for phone number.     * These are used to capture data to add to the address book.     *     * @see AddressBookMIDlet#addEntry     */    private Screen genEntryScr() {        if (entryScr == null) {            entryScr = new Form("Add new");            entryScr.addCommand(cmdCancel);            entryScr.addCommand(cmdAdd);            entryScr.setCommandListener(this);            e_firstName = new TextField("First name:", "",                                        FN_LEN, TextField.ANY);            e_lastName = new TextField("Last name:", "",                                       LN_LEN, TextField.ANY);            e_phoneNum = new TextField("Phone Number", "",                                       PN_LEN, TextField.PHONENUMBER);            entryScr.append(e_firstName);            entryScr.append(e_lastName);            entryScr.append(e_phoneNum);        }        e_firstName.delete(0, e_firstName.size());        e_lastName.delete(0, e_lastName.size());        e_phoneNum.delete(0, e_phoneNum.size());        display.setCurrent(entryScr);        return entryScr;    }    /**     * Generates a list of first/last/phone numbers.     * Can be called as a result of a browse command     * (genBrowseScr) or a search command     * (genSearchScr).     *     *  title  title of this screen (since it can be called     *         from a browse or a search command.     *  f      if not null, first name to search on     *  l      if not null, last name to search on     */    private Screen genNameScr(String title,                              String f,                              String l,                              boolean local) {        SimpleComparator sc;        SimpleFilter sf = null;        RecordEnumeration re;        phoneNums = null;        if (local) {            sc = new SimpleComparator(sortOrder == 0 ?                         SimpleComparator.SORT_BY_FIRST_NAME :                         SimpleComparator.SORT_BY_LAST_NAME);            if (f != null || l != null) {                sf = new SimpleFilter(f, l);            }            try {                re = addrBook.enumerateRecords(sf, sc, false);            } catch (Exception e) {                displayAlert(ERROR,                     "Could not create enumeration: " + e, null);                return null;            }        } else {            re = new NetworkQuery(f,l, sortOrder);        }        nameScr = null;        if (re.hasNextElement()) {            nameScr = new List(title, List.IMPLICIT);            nameScr.addCommand(cmdBack);            nameScr.addCommand(cmdDial);            nameScr.setCommandListener(this);            phoneNums = new Vector(6);            try {                while (re.hasNextElement()) {                    byte[] b = re.nextRecord();                    String pn = SimpleRecord.getPhoneNum(b);                    nameScr.append(SimpleRecord.getFirstName(b) +                        " " + SimpleRecord.getLastName(b) +                        " " + SimpleRecord.getPhoneNum(b), null);                    phoneNums.addElement(pn);                }            } catch (Exception e) {                displayAlert(ERROR,                    "Error while building name list: " + e, null);                return null;            }            display.setCurrent(nameScr);        } else {            displayAlert(INFO, "No names found", null);        }        return nameScr;    }    /**     * Generate a screen with which to dial the phone.     * Note: this may or may not be implemented     * on a given implementation.     */    private void genDialScr() {        dialScr =  new TextBox("Dialing",                               (String)phoneNums.elementAt(                                   nameScr.getSelectedIndex()),                               PN_LEN,                               TextField.PHONENUMBER);        dialScr.addCommand(cmdCancel);        dialScr.setCommandListener(this);        display.setCurrent(dialScr);    }    /**     * Add an entry to the address book.     * Called after the user selects the addCmd     * while in the genEntryScr screen.     */    private void addEntry() {        String f = e_firstName.getString();        String l = e_lastName.getString();        String p = e_phoneNum.getString();        byte[] b = SimpleRecord.createRecord(f,l,p);        try {            addrBook.addRecord(b, 0, b.length);            displayAlert(INFO, "Record added", mainScr);        } catch (RecordStoreException rse) {            displayAlert(ERROR, "Could not add record" + rse,                          mainScr);        }    }    /***     * This method implements a state machine that drives the     * MIDlet from one state (screen) to the next.     */    public void commandAction(Command c,                              Displayable d) {        if (d == mainScr) {            // Handle main sceen            if (c == cmdExit) {                midletExit(); // exit            } else if ((c == List.SELECT_COMMAND)                         || (c == cmdSelect)) {                switch (mainScr.getSelectedIndex()) {                case 0:                    // display search screen                    genSearchScr();                    break;                case 1:                    // display name entry screen                    genEntryScr();                    break;                case 2:                    // display all names                    genNameScr("Browse", null, null, true);                    break;                case 3:                    // display option screen                    genOptionScr();                    break;                default:                    displayAlert(ERROR, "Unexpected index!",                                 mainScr);                }            }        } else if (d == nameScr) {            // Handle a screen with names displayed, either            // from a browse or a search            if (c == cmdBack) {                // display main screen                genMainScr();            } else if (c == cmdDial) {                // dial the phone screen                genDialScr();            }        } else if (d == entryScr) {            // Handle the name entry screen            if (c == cmdCancel) {                // display main screen                genMainScr();            } else if (c == cmdAdd) {                // display name entry screen                addEntry();            }        } else if (d == optionScr) {            // Handle the option screen            if (c == cmdBack) {                // display main screen                genMainScr();            }        } else if (d == searchScr) {            // Handle the search screen            if (c == cmdBack) {                // display main screen                genMainScr();            } else if (c == cmdSearchNetwork ||                       c == cmdSearchLocal) {                // display search of local addr book                genNameScr("Search Result",                           s_firstName.getString(),                           s_lastName.getString(),                           c == cmdSearchLocal);            }        } else if (d == dialScr) {            if (c == cmdCancel) {                 // display main screen                 genMainScr();            }        }    }    /**     * Gets called when the user is viewing the sort options     * in the optionScr. Takes the new selected index and     * changes the sort order (how names are displayed     * from a search or a browse).     *     *  item   An item list     */    public void itemStateChanged(Item item) {        if (item == sortChoice) {            sortOrder = sortChoice.getSelectedIndex();        }    }}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人自拍视频在线观看| 综合中文字幕亚洲| 日本伊人午夜精品| 日韩亚洲欧美在线| 久久99精品一区二区三区三区| 欧美大黄免费观看| 久久国产福利国产秒拍| 91污片在线观看| 免费在线视频一区| 一区二区国产视频| 中文字幕中文字幕中文字幕亚洲无线 | 欧美最猛性xxxxx直播| 一区二区三区四区精品在线视频| a级高清视频欧美日韩| 亚洲一区二区三区中文字幕| 欧美一区二区三级| 丁香啪啪综合成人亚洲小说 | 久久人人爽爽爽人久久久| 国产伦理精品不卡| 亚洲欧美成人一区二区三区| 欧美区在线观看| 国产大片一区二区| 亚洲一区在线电影| 久久久久久久久久久久久女国产乱 | 一区二区三区色| 中文在线免费一区三区高中清不卡| 欧美日韩国产免费一区二区 | 日韩午夜小视频| 成人毛片老司机大片| 石原莉奈在线亚洲二区| 国产亚洲成年网址在线观看| 欧美自拍偷拍一区| 国产成人免费在线观看不卡| 五月激情丁香一区二区三区| 日本一区二区三区电影| 91精选在线观看| av一区二区三区在线| 九九九精品视频| 亚洲最新在线观看| 中文字幕不卡一区| 亚洲蜜臀av乱码久久精品| 欧美精品一区二区久久久| 久久婷婷一区二区三区| 丝袜诱惑制服诱惑色一区在线观看| 日韩视频免费直播| 高清日韩电视剧大全免费| 日本sm残虐另类| 亚洲国产日产av| 亚洲一区在线观看视频| 欧美tk丨vk视频| 色婷婷一区二区三区四区| 国产乱人伦偷精品视频免下载| 亚洲风情在线资源站| 最新国产成人在线观看| 久久精品夜色噜噜亚洲aⅴ| 欧美一级片在线| 欧美性猛片aaaaaaa做受| 成人av免费观看| 国产成人自拍网| 国产呦萝稀缺另类资源| 美女尤物国产一区| 日日欢夜夜爽一区| 性做久久久久久免费观看欧美| 亚洲欧美一区二区三区孕妇| 中国色在线观看另类| 欧美精品一区二区三区高清aⅴ | 狠狠色丁香久久婷婷综合_中| 亚洲1区2区3区4区| 亚洲成av人片在线| 亚洲综合激情另类小说区| 国产欧美一区二区精品性色超碰| 久久色在线观看| 26uuu精品一区二区三区四区在线| 一本久久a久久精品亚洲| 成人午夜激情影院| 欧美日韩亚洲国产综合| 欧美精品一区二区三区高清aⅴ | 亚洲午夜电影在线观看| 久久aⅴ国产欧美74aaa| 国产精品国产精品国产专区不片 | 成人精品视频一区| 国产成人av一区二区| 懂色av一区二区三区蜜臀| 国产成人午夜精品影院观看视频 | 67194成人在线观看| 欧美日韩极品在线观看一区| 欧美日韩精品一区二区天天拍小说| 欧美又粗又大又爽| 欧美日本韩国一区二区三区视频| 欧美欧美欧美欧美首页| 成人免费在线播放视频| 亚洲一区二区视频| 粉嫩在线一区二区三区视频| 欧美美女直播网站| 91视视频在线观看入口直接观看www| 国产美女在线观看一区| 成人av在线网站| 91丨porny丨在线| 欧美日韩卡一卡二| 精品入口麻豆88视频| 欧美国产乱子伦 | 三级不卡在线观看| 精品在线一区二区| 成年人网站91| 欧美日韩电影一区| 久久中文字幕电影| 亚洲免费av观看| 美女免费视频一区二区| 国产91丝袜在线观看| 91久久精品一区二区三区| 制服丝袜日韩国产| 亚洲国产精品v| 香蕉久久夜色精品国产使用方法| 亚洲最大的成人av| 精品一区二区三区在线观看国产| 欧美午夜一区二区三区| 亚洲天堂免费看| 成人综合在线观看| 久久久另类综合| 九色综合狠狠综合久久| 91精品国产综合久久久久久漫画| 国产亚洲婷婷免费| 国产精品免费视频观看| 日韩黄色免费网站| 99久久99久久精品免费观看| 欧美一区二区三区人| 日韩理论片中文av| 国产一区二区三区综合| 欧洲av一区二区嗯嗯嗯啊| 国产亚洲精品精华液| 亚洲观看高清完整版在线观看| 国产精品一二一区| 欧美一区二区播放| 一区二区三区四区精品在线视频| 国产精品亚洲午夜一区二区三区 | 成人黄色免费短视频| 日韩欧美国产一二三区| 蜜桃视频在线一区| 精品三级av在线| 国产麻豆精品久久一二三| 久久精品一区二区三区av| 日韩无一区二区| 五月天中文字幕一区二区| 99久久综合精品| 欧美激情中文字幕一区二区| 麻豆精品在线视频| 91精品国产入口在线| 亚洲午夜久久久| 91亚洲国产成人精品一区二区三| 久久久久久久av麻豆果冻| 久久电影网站中文字幕| 欧美高清视频不卡网| 亚洲国产精品精华液网站| 色香蕉久久蜜桃| 1024亚洲合集| 91亚洲精品乱码久久久久久蜜桃 | 精品国产在天天线2019| 日本网站在线观看一区二区三区| 欧美在线观看一区二区| 一区二区三区加勒比av| 欧美怡红院视频| 一区二区高清视频在线观看| 欧美日韩黄视频| 亚洲成va人在线观看| 欧美xingq一区二区| 不卡的av中国片| 视频一区二区三区入口| 欧美va亚洲va香蕉在线| 中文一区在线播放| 91影院在线免费观看| 亚洲精品国产无天堂网2021| 欧洲视频一区二区| 午夜久久电影网| 欧美一区二区三区四区久久| 免费在线欧美视频| 精品成人一区二区| 国产精品自产自拍| 国产精品毛片a∨一区二区三区| 成人午夜电影久久影院| 亚洲欧美日韩国产成人精品影院| 91精品福利视频| 视频一区视频二区在线观看| 欧美一级夜夜爽| 国产一区不卡在线| 一区二区中文字幕在线| 国产精品色眯眯| 日本电影亚洲天堂一区| 日韩精品一二区| 久久久久久99精品| aa级大片欧美| 污片在线观看一区二区| 精品久久久久久综合日本欧美| 亚洲精品免费在线| 精品成人在线观看| 欧美人与z0zoxxxx视频| 99久久伊人网影院| 国产一区免费电影| 日本免费在线视频不卡一不卡二| 国产一区二区三区在线看麻豆| 亚洲视频网在线直播|