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

📄 hanoi.java

📁 用于移动设备上的java虚拟机源代码
💻 JAVA
字号:
/* * @(#)Hanoi.java	1.3 02/08/15 @(#) * * Copyright (c) 2002 Sun Microsystems, Inc.  All rights reserved. * PROPRIETARY/CONFIDENTIAL * Use is subject to license terms. */package example.hanoi;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.Display;import javax.microedition.lcdui.Displayable;import javax.microedition.midlet.MIDlet;public class Hanoi extends MIDlet    implements Runnable, CommandListener {    public Hanoi() {	super();	// Set up the user interface	m_Display = Display.getDisplay(this);	m_Canvas  = new HanoiCanvas(this);	m_Canvas.setCommandListener(this);	m_Canvas.addCommand(solveCommand);	m_Canvas.addCommand(exitCommand);    }    public void startApp() {	m_Display.setCurrent(m_Canvas);        if(m_Hanoi == null)  {            m_Hanoi = new Thread(this);            m_Hanoi.start();        }    }    public void destroyApp(boolean force) {	m_Canvas.exit();	m_Hanoi = null;	m_Display.setCurrent(null);    }    public void pauseApp() {	m_Canvas.exit();	m_Hanoi = null;    }    public void run() {        do {	    synchronized(m_Canvas) {		try {		    m_Canvas.wait();		} catch (InterruptedException ie) {		    continue;               // Go back through while(true) loop		}		while (m_Canvas.isSolving()) {		    m_Canvas.updateInfo();		}		if (!m_Canvas.isSolving()) {		    m_Canvas.removeCommand(stopCommand);		    m_Canvas.addCommand(resetCommand);		}	    }        }        while(!m_Canvas.isExiting());	m_Canvas = null;    }    public void commandAction(Command c, Displayable d) {	if (c == exitCommand) {	    destroyApp(false);	    notifyDestroyed();	} else if (c == solveCommand) {	    if (!m_Canvas.isSolving()) {		m_Canvas.solve();	    }	    m_Canvas.removeCommand(solveCommand);	    m_Canvas.addCommand(stopCommand);	} else if (c == stopCommand) {            m_Canvas.stop();	    m_Canvas.removeCommand(stopCommand);	    m_Canvas.addCommand(resetCommand);	} else if (c == resetCommand) {	    m_Canvas.resetTowers();	    m_Canvas.removeCommand(resetCommand);	    m_Canvas.addCommand(solveCommand);	}    }    private Thread      m_Hanoi;    private HanoiCanvas m_Canvas;    private Display     m_Display;    private Command     solveCommand = new Command("Solve", Command.SCREEN, 1);    private Command     stopCommand  = new Command("Stop",  Command.SCREEN, 2);    private Command     resetCommand = new Command("Reset", Command.SCREEN, 2);    private Command     exitCommand  = new Command("Exit",  Command.EXIT, 1);}

⌨️ 快捷键说明

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