亚洲欧美第一页_禁久久精品乱码_粉嫩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;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩亚洲综合一区| 精品一区二区在线免费观看| 欧美在线啊v一区| 图片区小说区区亚洲影院| 欧美酷刑日本凌虐凌虐| 亚洲成人你懂的| 欧美日韩五月天| 国产精品夜夜嗨| 亚洲欧美国产毛片在线| 91精品国产欧美一区二区| 中文字幕一区av| 国产精品久久久久aaaa樱花| 91在线免费视频观看| 亚洲男人都懂的| 日韩欧美国产午夜精品| 99久久婷婷国产综合精品电影| 青青草91视频| 国产午夜精品理论片a级大结局 | 欧美亚洲一区二区在线观看| 亚洲午夜免费福利视频| 精品国产亚洲一区二区三区在线观看 | 91精品国产全国免费观看| 国产a区久久久| 日韩在线一二三区| 国产精品视频看| 欧美一卡二卡三卡四卡| a4yy欧美一区二区三区| 美女www一区二区| 一区二区欧美视频| 久久久国产精品麻豆| 欧美日韩美女一区二区| 成人性生交大合| 免费欧美在线视频| 一区二区三区日韩| 国产精品乱人伦中文| 欧美影院午夜播放| 成人午夜伦理影院| 麻豆中文一区二区| ...中文天堂在线一区| 欧美乱熟臀69xxxxxx| 不卡的av网站| 国产专区欧美精品| 视频在线观看91| 亚洲一区二区三区免费视频| 国产精品久久久久桃色tv| 日韩美女主播在线视频一区二区三区| 中文字幕在线不卡视频| 欧美精品一区二区三区久久久| 久久99最新地址| 婷婷国产在线综合| 亚洲国产日韩精品| 亚洲欧洲精品一区二区三区不卡| 一本大道久久a久久综合婷婷| 亚洲欧美一区二区三区久本道91| 国产东北露脸精品视频| 美女一区二区三区在线观看| 一区二区三区精密机械公司| 国产精品全国免费观看高清| 久久久久久亚洲综合| 精品成人一区二区三区四区| 91精品久久久久久久久99蜜臂| 久久精品国产免费| 日本网站在线观看一区二区三区| 日韩精品中文字幕一区二区三区| 韩国欧美国产1区| 日韩经典中文字幕一区| 丝袜诱惑制服诱惑色一区在线观看 | 欧美日韩成人在线一区| 欧美这里有精品| 91在线国产福利| 国产91对白在线观看九色| 丁香五精品蜜臀久久久久99网站| 亚洲影视在线播放| 亚洲三级免费电影| 亚洲精品免费视频| 樱花草国产18久久久久| 自拍偷在线精品自拍偷无码专区| 欧美一区二区三区四区高清| 7799精品视频| 欧美成人免费网站| 日韩免费视频一区| 久久久久综合网| 国产精品视频观看| 一区二区三区波多野结衣在线观看| 69av一区二区三区| 精品久久久久久久久久久院品网 | 久久成人免费网| 另类小说图片综合网| 国产一区二区三区在线观看免费 | 亚洲欧洲精品天堂一级| 国产精品国产三级国产普通话99| 欧美日韩亚洲综合一区二区三区| 国产精品538一区二区在线| 成人av在线电影| 色噜噜狠狠一区二区三区果冻| 精品午夜久久福利影院| 国产一区二区免费视频| 美女视频黄 久久| 国产精品一区二区三区四区| 97se亚洲国产综合自在线不卡| 国产一区二区0| www.欧美色图| 91精品国产综合久久久久久漫画| 91麻豆.com| 欧美一级二级三级乱码| 欧美国产精品中文字幕| 亚洲精品日韩一| 蜜乳av一区二区| 一本色道a无线码一区v| 日韩精品一区二区三区在线播放| 91小视频免费观看| 欧美日韩高清不卡| 国产日韩欧美激情| 亚洲成av人片在线观看无码| 福利一区二区在线| 欧美麻豆精品久久久久久| 亚洲精品日日夜夜| 亚洲精选一二三| 精品亚洲欧美一区| 成人av网在线| 884aa四虎影成人精品一区| 国产精品亲子乱子伦xxxx裸| 日韩成人一级片| 99久久国产免费看| 精品国产自在久精品国产| 亚洲一级电影视频| 精品亚洲国产成人av制服丝袜| 亚洲成a人片综合在线| 丰满亚洲少妇av| 日韩欧美精品在线| 亚洲精品一区二区在线观看| 亚洲电影第三页| 99久久亚洲一区二区三区青草| 99国产精品国产精品久久| 日韩欧美一区中文| 亚洲品质自拍视频网站| 狠狠色狠狠色综合| 欧美电影一区二区| 亚洲精品中文字幕乱码三区| 成人av在线影院| 日韩美女久久久| 91丨九色丨黑人外教| 中文字幕亚洲不卡| 99久久99久久综合| 日韩毛片精品高清免费| 91看片淫黄大片一级在线观看| 欧美日韩一卡二卡三卡| 亚洲va中文字幕| 717成人午夜免费福利电影| 视频一区二区三区入口| 欧美一级淫片007| 美女视频网站黄色亚洲| 2021久久国产精品不只是精品| 1000部国产精品成人观看| 91美女精品福利| 亚洲丶国产丶欧美一区二区三区| 国产中文字幕精品| 久久综合九色综合97婷婷| 国产在线精品一区二区| 国产视频一区二区在线观看| 成人午夜又粗又硬又大| 亚洲视频 欧洲视频| 欧洲精品在线观看| 丝袜美腿亚洲色图| 2024国产精品视频| 成人黄色电影在线| 亚洲一区二区偷拍精品| 7777精品伊人久久久大香线蕉经典版下载 | 国产成人a级片| 久久这里只精品最新地址| 极品美女销魂一区二区三区| 精品国产乱码久久久久久久久| 亚洲人妖av一区二区| 欧美在线免费视屏| 免费xxxx性欧美18vr| 国产亚洲综合在线| 91美女片黄在线| 日本不卡一区二区三区高清视频| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 亚洲国产毛片aaaaa无费看| 欧美中文字幕一区二区三区 | 亚洲成av人片一区二区梦乃| 日韩三级av在线播放| 波多野结衣中文一区| 午夜在线电影亚洲一区| 久久新电视剧免费观看| 91蝌蚪国产九色| 黑人巨大精品欧美黑白配亚洲| 91精品国产品国语在线不卡| 国产成人av资源| 天天操天天综合网| 国产精品理伦片| 日韩欧美美女一区二区三区| 成人精品小蝌蚪| 男人的天堂久久精品| 亚洲日本乱码在线观看| 精品国产亚洲在线| 精品视频在线免费| 丁香激情综合国产| 日本成人在线一区|