spirograph.java

来自「3D手机游戏开发实例源代码」· Java 代码 · 共 70 行

JAVA
70
字号
import javax.microedition.midlet.MIDlet;
import javax.microedition.lcdui.*;

public class Spirograph extends MIDlet implements CommandListener {

    private Command exitCommand  = new Command("Exit",  Command.EXIT, 1);
    private Command startCommand = new Command("Start", Command.ITEM, 2);
    private Command stopCommand  = new Command("Stop",  Command.ITEM, 2);
    private Command backCommand  = new Command("Back",  Command.ITEM, 2);
    private Form mainForm;
    private MyGameCanvas mainCanvas;
    private TextField inputField1;
    private TextField inputField2;
    

    
    protected void startApp() {
        mainForm   = new Form("Spirograph");
        mainCanvas = new MyGameCanvas();
            inputField1 = new TextField("r", "50", 15, TextField.NUMERIC);
            inputField2 = new TextField("m", "45", 15, TextField.NUMERIC);
            mainForm.append(inputField1);
            mainForm.append(inputField2);
            mainForm.addCommand(exitCommand);
            mainForm.addCommand(startCommand);
            mainForm.setCommandListener(this);
            mainCanvas.addCommand(stopCommand);
            mainCanvas.setCommandListener(this);

       Display.getDisplay(this).setCurrent(mainForm);
    }
    
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) { // 选择[Exit]时的处理
            destroyApp(false);
            notifyDestroyed();
        } else if(c == startCommand) { // 选择[Start]时的处理           
            // 改变Command menu
            mainCanvas.removeCommand(backCommand); //去除[Back]
            mainCanvas.addCommand(stopCommand);    //添加[Stop]

            // 描绘内容与变量的reset
            mainCanvas.reset(Integer.parseInt(inputField1.getString()),
                             Integer.parseInt(inputField2.getString()));
            
            // 描绘的切换
            Display.getDisplay(this).setCurrent(mainCanvas);

            // thread的开始
            mainCanvas.start();
        } else if(c == stopCommand) { // 选择[Stop]时的处理
            // 改变Command menu
            mainCanvas.removeCommand(stopCommand); //去除[Stop]
            mainCanvas.addCommand(backCommand);    //添加[Back]
            // thread的停止
            mainCanvas.stop();
        } else if(c == backCommand) { // 选择[Back]时的处理
            Display.getDisplay(this).setCurrent(mainForm);    
        }
    }
        
    protected void destroyApp(boolean unconditional) {
    }
    
    protected void pauseApp() {
    }
        
}

⌨️ 快捷键说明

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