settingsform.java

来自「Online Map for Mobile」· Java 代码 · 共 73 行

JAVA
73 行
字号
import javax.microedition.lcdui.*;

public class SettingsForm extends Form implements CommandListener { 
    BrowserCanvas canvas;
    ChoiceGroup   choice;
    ChoiceGroup   locale;
    Gauge         cacheSize;
    boolean[]     selected;
    SettingsForm(BrowserCanvas canvas) { 
        super(Locale.current.getResource("Settings"));        
        this.canvas = canvas;
        int flags = canvas.browser.settings.flags;
        choice = new ChoiceGroup(null, 
                                 Choice.MULTIPLE, 
                                 new String[] {
                                     Locale.current.getResource("Fast Scroll"), 
                                     Locale.current.getResource("Auto zoom"),
                                     Locale.current.getResource("Blinking")}, 
                                 null);
        selected = new boolean[]{(flags & Settings.FAST_SCROLL) != 0, (flags & Settings.AUTO_ZOOM) != 0, true};
        choice.setSelectedFlags(selected);
        locale = new ChoiceGroup(Locale.current.getResource("Locale"), Choice.EXCLUSIVE, Locale.SUPPORTED_LANGUAGES, null);
        for (int i = 0; i < Locale.SUPPORTED_LOCALES.length; i++) { 
            if (Locale.SUPPORTED_LOCALES[i].equals((Locale.current.getLanguage()))) { 
                locale.setSelectedIndex(i, true);
                break;
            }
        }
        cacheSize = new Gauge("Cache size", true, Settings.MAX_CACHE_SIZE-1, 
                              canvas.browser.settings.cacheSize-1);
        append(choice);
        append(locale);
        append(cacheSize);
        addCommand(MapBrowser.SAVE_CMD);
        addCommand(MapBrowser.BACK_CMD);
        setCommandListener(this);
        Display.getDisplay(canvas.browser).setCurrent(this);
    }
    
    public void commandAction(Command c, Displayable d) 
    {
        if (c == MapBrowser.SAVE_CMD) { 
            choice.getSelectedFlags(selected);
            int mask = 0;
            if (selected[0]) {
                mask |= Settings.FAST_SCROLL;
            }
            if (selected[1]) { 
                mask |= Settings.AUTO_ZOOM;
            }
            if (selected[2]) { 
                mask |= Settings.BLINKING;
            }
            MapBrowser browser = canvas.browser;
            browser.settings.flags = mask;
            String localeName = Locale.SUPPORTED_LOCALES[locale.getSelectedIndex()];
            
            if (!localeName.equals(browser.settings.locale)) { 
                browser.settings.locale = localeName;
                browser.setLocale();
                browser.saveSettings();
                browser.showMap(); 
                return;
            }
            browser.settings.cacheSize = cacheSize.getValue()+1;
            browser.saveSettings();
        }                
        Display.getDisplay(canvas.browser).setCurrent(canvas);
    }
}
           

   

⌨️ 快捷键说明

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