⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 choicegroupdemo.java

📁 《J2ME图形应用基础》第二章
💻 JAVA
字号:
/*
 * ChoiceGroupDemo.java
 *
 */

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

/**
 *
 * @author  Liu Bin
 * @version
 */
public class ChoiceGroupDemo extends MIDlet
        implements CommandListener , ItemStateListener {
    private Display display;
    
    private Form form;
    private Command cmdExit;
    private StringItem testItem;
    
    /**
     * Radio buttons
     */
    private ChoiceGroup radioGroup;
    
    /**
     * Checkboxes
     */
    private ChoiceGroup checkboxGroup;
    
    /**
     * Popup
     */
    private ChoiceGroup popupGroup;
    
    //Popup ChoiceGroup的内容
    private static final String[] popupMenu = {"全部", "布局","字体"};
    
    //Radio ChoiceGroup的内容
    private static final String[] radioMenu = {"左对齐",
            "居中", "右对齐"
    };
    
    //Checkbox ChoiceGroup的内容
    private static final String[] checkboxMenu = {"黑体",
            "倾斜", "下划线"
    };
    
    public ChoiceGroupDemo() {
        try {
            nbInit();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }
    
    private void nbInit() throws Exception {
        cmdExit = new Command("退出", Command.EXIT, 0);
        
        popupGroup = new ChoiceGroup("选择操作方法", ChoiceGroup.POPUP,
                popupMenu, null);
        radioGroup = new ChoiceGroup("选择布局", ChoiceGroup.EXCLUSIVE,
                radioMenu, null);
        checkboxGroup = new ChoiceGroup("选择字体式样", ChoiceGroup.MULTIPLE,
                checkboxMenu, null);
        boolean selectArray[] = {false, false, false};
        checkboxGroup.setSelectedFlags(selectArray);
        
        form = new Form("ChoiceGroup演示");
        form.append(popupGroup);
        form.append(radioGroup);
        form.append(checkboxGroup);
        testItem = new StringItem("","测试效果");
        testItem.setPreferredSize(50,  20);
        form.append(testItem);
        
        form.addCommand(cmdExit);
        form.setCommandListener(this);
        form.setItemStateListener(this);
    }
    public void startApp() {
        display = Display.getDisplay(this);
        display.setCurrent(form);
    }
    
    public void pauseApp() {
    }
    
    public void destroyApp(boolean unconditional) {
        notifyDestroyed();
    }
    
    /**
     * 处理命令按钮事件
     */
    public void commandAction(Command cmd, Displayable d) {
        if (cmd == cmdExit) {
            destroyApp(true);
        }
    }
    
    //处理选择框内选项改变的事件
    public void itemStateChanged(Item item) {
        if( item instanceof ChoiceGroup) {
            ChoiceGroup cg = (ChoiceGroup)item;
            
            int index = cg.getSelectedIndex();
            if (cg == radioGroup) {
                switch(index) {
                    case 0:
                        testItem.setLayout(Item.LAYOUT_LEFT);
                        break;
                    case 1:
                        testItem.setLayout(Item.LAYOUT_CENTER);
                        break;
                    case 2:
                        testItem.setLayout(Item.LAYOUT_RIGHT);
                        break;
                }
            } else if (cg == popupGroup) {
                switch(index) {
                    case 0:
                        showAll();
                        break;
                    case 1:
                        showRadioChoiceGroup();
                        break;
                    case 2:
                        showCheckboxChoiceGroup();
                        break;
                }
            } else if (cg == checkboxGroup) {
                boolean[] sf = new boolean[cg.size()];
                cg.getSelectedFlags(sf);
                
                int style = 0;
                for (int i=0;i<sf.length;i++) {
                    if (sf[i]) {
                        style |= 1 << i;
                    }
                }
                Font oldFont, newFont;
                oldFont = testItem.getFont();
                newFont = Font.getFont(oldFont.getFace(),
                        style, oldFont.getSize());
                testItem.setFont(newFont);
                //force form to update UI at once
                form.delete(form.size()-1);
                form.append(testItem);
            }
        }
    }
    
    private void showAll() {
        form.deleteAll();
        form.append(popupGroup);
        form.append(radioGroup);
        form.append(checkboxGroup);
        form.append(testItem);
    }
    
    private void showRadioChoiceGroup() {
        form.deleteAll();
        form.append(popupGroup);
        form.append(radioGroup);
        form.append(testItem);
    }
    
    private void showCheckboxChoiceGroup() {
        form.deleteAll();
        form.append(popupGroup);
        form.append(checkboxGroup);
        form.append(testItem);
    }
}

⌨️ 快捷键说明

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