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

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

?? photoalbum.java

?? J2ME寫的相冊瀏覽程序
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* * @(#)PhotoAlbum.java	1.5 04/01/27 * * Copyright (c) 2000-2004 Sun Microsystems, Inc. All rights reserved.  * PROPRIETARY/CONFIDENTIAL * Use is subject to license terms */package example.photoalbum;import javax.microedition.midlet.*;import javax.microedition.lcdui.*;import java.util.Vector;import java.io.IOException;import java.io.DataInputStream;import javax.microedition.io.HttpConnection;import javax.microedition.io.ContentConnection;import javax.microedition.io.Connector;import javax.microedition.rms.*;import example.About;/** * The PhotoAlbum MIDlet provides the commands and screens * that implement a simple photograph and animation album. * The images and animations to be displayed are configured * in the descriptor file with attributes. * <p> * Options are provided to to vary the speed of display * and the frame style. * */public class PhotoAlbum    extends MIDlet    implements CommandListener, ItemStateListener, Runnable{    /** The Command object for the About command */    private Command aboutCommand;    /** The Command object for the Exit command */    private Command exitCommand;    /** The Command object for the Ok command */    private Command okCommand;    /** The Command object for the Options command */    private Command optionsCommand;    /** The Command object for the Back command */    private Command backCommand;    /** The Command object for the Cancel command */    private Command cancelCommand;    /** The Form object for the Progress form */    private Form progressForm;    /** The Gauge object for the Progress gauge */    private Gauge progressGauge;    /** The Form object for the Options command */    private Form optionsForm;    /** Set of choices for the border styles */    private ChoiceGroup borderChoice;    /** Set of choices for the speeds */    private ChoiceGroup speedChoice;    /** The current display for this MIDlet */    private Display display;    /** The PhotoFrame that displays images */    private PhotoFrame frame;    /** The Alert for messages */    private Alert alert;    /** Contains Strings with the image names */    private Vector imageNames;    /** List of Image titles for user to select */    private List imageList;    /** Name of current image, may be null */    private String imageName;    /** Current thread loading images, may be null */    private Thread thread;    /** Name of persistent storage */    private final String optionsName = "PhotoAlbum";    /** Persistent storage for options */    private RecordStore optionsStore;        private boolean firstTime = true;    /**     * Construct a new PhotoAlbum MIDlet and initialize the base options     * and main PhotoFrame to be used when the MIDlet is started.     */    public PhotoAlbum() {          display = Display.getDisplay(this);        exitCommand = new Command("Exit", Command.EXIT, 1);        optionsCommand = new Command("Options", Command.SCREEN, 1);        okCommand = new Command("Ok", Command.OK, 3);        backCommand = new Command("Back", Command.BACK, 3);        cancelCommand = new Command("Cancel", Command.CANCEL, 1);        aboutCommand = new Command("About", Command.HELP, 30);        frame = new PhotoFrame();        frame.setStyle(2);        frame.setSpeed(2);        frame.addCommand(optionsCommand);        frame.addCommand(backCommand);        frame.setCommandListener(this);        alert = new Alert("Warning");        setupImageList();        firstTime = true;                   }    /**     * Start up the Hello MIDlet by setting the PhotoFrame     * and loading the initial images.     */    protected void startApp() {        if(firstTime) {            if (imageList.size() > 0) {                display.setCurrent(imageList);                openOptions();                restoreOptions();            } else {                alert.setString("No images configured.");                display.setCurrent(alert, imageList);            }            firstTime = false;        }                openOptions();        restoreOptions();    }    /**     * Pause is used to release the memory used by Image.     * When restarted the images will be re-created.     * Save the options for the next restart.     */    protected void pauseApp() {        saveOptions();    }    /**     * Destroy must cleanup everything not handled by the garbage collector.     * In this case there is nothing to cleanup.     * Save the options for the next restart.     * @param unconditional true if this MIDlet should always cleanup     */    protected void destroyApp(boolean unconditional) {        saveOptions();        frame.reset();          // Discard images cached in the frame.        saveOptions();        closeOptions();    }    /**     * Respond to commands. Commands are added to each screen as     * they are created.  Each screen uses the PhotoAlbum MIDlet as the      * CommandListener. All commands are handled here:     * <UL>     * <LI>Select on Image List - display the progress form and start the thread     *  to read in the images.     * <LI>Options - display the options form.     * <LI>Ok on the Options form - returns to the PhotoFrame.     * <LI>Back - display the Image List, deactivating the PhotoFrame.     * <LI>Cancel - display the image List and stop the thread loading images.     * <LI>Exit - images are released and notification is given that the MIDlet     *  has exited.     * </UL>     * @param c the command that triggered this callback     * @param s the screen that contained the command     */    public void commandAction(Command c, Displayable s) {        if (c == exitCommand) {            // Cleanup and notify that the MIDlet has exited            destroyApp(false);            notifyDestroyed();        } else if (c == optionsCommand) {            // Display the options form	    display.setCurrent(genOptions());	} else if (c == okCommand && s == optionsForm) {            // Return to the PhotoFrame, the option values have already            // been saved by the item state listener	    display.setCurrent(frame);	} else if (c == List.SELECT_COMMAND) {            // Display the progress screen and            // start the thread to read the images            int i = imageList.getSelectedIndex();            imageName = (String)imageNames.elementAt(i);	    display.setCurrent(genProgress(imageList.getString(i)));	    thread = new Thread(this);            thread.start();        } else if (c == backCommand) {            // Display the list of images.            display.setCurrent(imageList);        } else if (c == cancelCommand) {	    // Signal thread to stop and put an alert.	    thread = null;            alert.setString("Loading images cancelled.");            display.setCurrent(alert, imageList);	} else if (c == aboutCommand) {	    About.showAbout(display);	}    }    /**     * Listener for changes to options.     * The new values are set in the PhotoFrame.     * @param item - the item whose value has changed.     */    public void itemStateChanged(Item item) {	if (item == borderChoice) {            frame.setStyle(borderChoice.getSelectedIndex());	} else if (item == speedChoice) {	    frame.setSpeed(speedChoice.getSelectedIndex());	}    }    /**     * Generate the options form with speed and style choices.     * Speed choices are stop, slow, medium, and fast.     * Style choices for borders are none, plain, fancy.     * @return the generated options Screen     */    private Screen genOptions() {	if (optionsForm == null) {	    optionsForm = new Form("Options");	    optionsForm.addCommand(okCommand);	    optionsForm.setCommandListener(this);	    optionsForm.setItemStateListener(this);	    speedChoice = new ChoiceGroup("Speed", Choice.EXCLUSIVE);	    speedChoice.append("Stop", null);	    speedChoice.append("Slow", null);	    speedChoice.append("Medium", null);	    speedChoice.append("Fast", null);	    speedChoice.append("Unlimited", null);	    speedChoice.setSelectedIndex(frame.getSpeed(), true);	    optionsForm.append(speedChoice);	    borderChoice = new ChoiceGroup("Borders", Choice.EXCLUSIVE);	    borderChoice.append("None", null);	    borderChoice.append("Plain",  null);	    borderChoice.append("Fancy", null);	    borderChoice.setSelectedIndex(frame.getStyle(), true);	    optionsForm.append(borderChoice);	}	return optionsForm;    }        /**     * Generate the options form with image title and progress gauge.     * @param name the title of the Image to be loaded.     * @return the generated progress screen     */    private Screen genProgress(String name) {	if (progressForm == null) {	    progressForm = new Form(name);	    progressForm.addCommand(cancelCommand);	    progressForm.setCommandListener(this);	    progressGauge =		new javax.microedition.lcdui.Gauge("Loading images...",						   false, 9, 0);	    progressForm.append(progressGauge);	} else {	    progressGauge.setValue(0);	    progressForm.setTitle(name);	}	return progressForm;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
26uuu国产电影一区二区| 亚洲v日本v欧美v久久精品| 亚洲欧美怡红院| 久久精品国产亚洲一区二区三区| 国产精品一区二区黑丝| 色婷婷av一区| 国产视频一区在线观看 | 欧美老人xxxx18| 国产日韩欧美精品一区| 免费久久精品视频| 色婷婷综合久久久久中文| 久久久精品欧美丰满| 午夜电影网一区| 91视频.com| 国产精品女上位| 国产在线看一区| 欧美成人video| 久久99精品国产麻豆不卡| 欧美日韩一区不卡| 亚洲激情图片小说视频| 91亚洲精华国产精华精华液| 国产精品免费丝袜| 国产高清精品久久久久| 精品处破学生在线二十三| 视频一区视频二区中文| 欧美日韩国产在线播放网站| 亚洲精品伦理在线| 成人免费av在线| 国产精品免费久久| aaa亚洲精品| 一色桃子久久精品亚洲| av日韩在线网站| 国产精品久久久久aaaa樱花| aaa欧美大片| 亚洲欧美日韩精品久久久久| 色婷婷久久综合| 一区二区三区四区中文字幕| 色就色 综合激情| 午夜精品一区二区三区电影天堂 | 在线一区二区三区四区| 136国产福利精品导航| 91啪九色porn原创视频在线观看| 亚洲天堂精品视频| 欧洲一区二区av| 日韩激情视频在线观看| 欧美一级国产精品| 国产在线一区观看| 国产欧美一区二区精品久导航| 国产成人丝袜美腿| 亚洲三级小视频| 欧美欧美欧美欧美首页| 久久99最新地址| 欧美激情在线一区二区| 色婷婷一区二区| 免播放器亚洲一区| 久久精品亚洲一区二区三区浴池| 成人av在线电影| 亚洲一区二区三区四区中文字幕| 9191成人精品久久| 国产91精品一区二区麻豆亚洲| 亚洲品质自拍视频| 日韩欧美在线观看一区二区三区| 国产精品1024久久| 亚洲bt欧美bt精品| 欧美激情在线一区二区| 欧美日韩国产一级| 成人免费高清在线| 日韩中文字幕一区二区三区| 国产调教视频一区| 欧美日韩三级一区二区| 国产成人丝袜美腿| 午夜精品国产更新| 国产精品看片你懂得| 欧美一区国产二区| 色婷婷综合中文久久一本| 免费不卡在线视频| 亚洲丝袜另类动漫二区| 精品sm捆绑视频| 色欧美88888久久久久久影院| 美女一区二区久久| 一区二区三区四区乱视频| 亚洲精品在线免费观看视频| 91久久香蕉国产日韩欧美9色| 国产一区二区三区免费观看| 亚洲福利视频一区| 亚洲综合免费观看高清完整版在线 | 亚洲精品自拍动漫在线| 欧美成人vps| 欧美片网站yy| 精品视频一区 二区 三区| www.色综合.com| 色婷婷一区二区| 国产黄人亚洲片| 美女视频一区在线观看| 亚洲一区欧美一区| 亚洲日本乱码在线观看| 日本一区二区三区四区在线视频| 欧美高清性hdvideosex| 一本久久综合亚洲鲁鲁五月天| 国产精品亚洲人在线观看| 免费在线观看日韩欧美| 亚洲成人你懂的| 一区二区在线看| 亚洲乱码日产精品bd| 中文字幕亚洲成人| 国产精品私人影院| 久久精品一区二区三区不卡牛牛| 欧美日韩另类一区| av一区二区久久| 国产成人免费视频一区| 国产一区二区成人久久免费影院| 日韩一区精品字幕| 天涯成人国产亚洲精品一区av| 日韩伦理电影网| 综合婷婷亚洲小说| 亚洲男人的天堂av| 亚洲最大的成人av| 一区二区三区精密机械公司| 亚洲精品欧美在线| 亚洲男人的天堂在线观看| 久久久青草青青国产亚洲免观| 欧美电影免费观看高清完整版在线 | 成人在线视频首页| 菠萝蜜视频在线观看一区| 狠狠色丁香婷婷综合| 国内精品免费在线观看| 国产一区美女在线| 国产东北露脸精品视频| 国产传媒日韩欧美成人| 成人av在线电影| 色综合久久中文综合久久97| www.成人在线| 91美女视频网站| 色婷婷综合久色| 欧美少妇bbb| 制服丝袜成人动漫| 久久综合九色综合久久久精品综合 | 美美哒免费高清在线观看视频一区二区 | 亚洲欧美一区二区在线观看| 亚洲视频在线一区二区| 欧美影院午夜播放| 91国产丝袜在线播放| 欧美美女一区二区三区| 日韩欧美综合在线| 国产精品免费aⅴ片在线观看| 亚洲理论在线观看| 婷婷一区二区三区| 国内精品国产三级国产a久久| www.色精品| 日韩欧美中文字幕一区| 国产精品午夜免费| 午夜成人在线视频| 国产伦精品一区二区三区免费迷| 成人性视频网站| 欧美理论片在线| 国产精品国产三级国产有无不卡| 亚洲成人资源网| 成人午夜又粗又硬又大| 欧美日韩高清一区| 中日韩av电影| 免费日本视频一区| 色av成人天堂桃色av| 精品国产一区二区三区四区四| 国产精品午夜春色av| 蜜桃一区二区三区四区| 99国产精品国产精品久久| 欧美成人aa大片| 亚洲综合成人网| 成人高清视频免费观看| 欧美一二三区在线| 亚洲乱码国产乱码精品精的特点| 久久国产视频网| 欧美日韩国产片| 日韩一区有码在线| 国产高清精品在线| 欧美va日韩va| 蜜臀va亚洲va欧美va天堂 | 大尺度一区二区| 日韩欧美视频在线| 亚洲国产欧美一区二区三区丁香婷| 国产+成+人+亚洲欧洲自线| 欧美一区二区在线免费观看| 亚洲国产日产av| 欧洲亚洲国产日韩| 一区二区欧美国产| 99久久精品99国产精品| 国产精品久久影院| 波多野结衣中文字幕一区二区三区| 久久久久国产精品厨房| 久久精品99国产精品日本| 日韩写真欧美这视频| 日韩一区欧美二区| 欧美一区二区国产| 美女在线一区二区| 日韩欧美高清一区| 国产在线乱码一区二区三区| 2017欧美狠狠色| 国产成人av资源| 久久久综合精品| 成人免费视频免费观看|