Panel ←→ Canvas 画面切り替え

import com.nttdocomo.ui.*;

public class ExerciseSwitchCanvasPanel extends IApplication{	
	private PanelScreen screen;
	public void start(){
		screen = new PanelScreen();
		Display.setCurrent(screen);	
	}
}

//スクリーン1
class PanelScreen extends Panel implements SoftKeyListener{

	private Label lblResult;
	public static int switchNum;
	
	public PanelScreen(){
		lblResult = new Label("PanelScreen" + switchNum);
		add(lblResult);

		setSoftKeyListener(this);
		setSoftLabel(SOFT_KEY_1,"終了");
		setSoftLabel(SOFT_KEY_2,"切替え");
	}

	//キーイベント
	public void softKeyPressed(int key){}
	public void softKeyReleased(int key){
		if( key == Frame.SOFT_KEY_1 ){
			IApplication.getCurrentApp().terminate();
		}else if(key == Frame.SOFT_KEY_2){
			Dialog d = new Dialog(Dialog.DIALOG_INFO,"result");
			switchNum++;
			d.setText("スクリーンを切り替えます");
			d.show();
			CanvasScreen screen2 = new CanvasScreen();
			Display.setCurrent(screen2);
		}
	}
}



//スクリーン2
class CanvasScreen extends Canvas{

	
	public CanvasScreen(){
		setSoftLabel(Frame.SOFT_KEY_1,"終了");
		setSoftLabel(Frame.SOFT_KEY_2,"切替え");
	}
	
	public void paint(Graphics g){
		g.lock();
		
		g.setColor(Graphics.getColorOfName(Graphics.BLACK));	//これ以降は黒で描画される
		g.fillRect(0,0,getWidth(),getHeight());
		
		g.setColor(Graphics.getColorOfName(Graphics.RED));		//これ以降は赤で描画される
		Font f = Font.getDefaultFont();
		String s = "CanvasScreen";
		g.drawString(s,(getWidth() - f.getBBoxWidth(s)) / 2, getHeight() / 2);	//センタリングして表示
		String snum = String.valueOf(PanelScreen.switchNum);
		g.drawString(snum,(getWidth() - f.getBBoxWidth(snum)) / 2, (getHeight() / 2)+10);	//センタリングして表示
		
		
		g.unlock(true);
	}
	
	//キーイベントの動作指定
	public void processEvent(int type, int param) {
		if(type == Display.KEY_RELEASED_EVENT){
			if(param == Display.KEY_SOFT1){
				IApplication.getCurrentApp().terminate();
			}else if(param == Display.KEY_SOFT2){
				PanelScreen.switchNum++;
				Dialog d = new Dialog(Dialog.DIALOG_INFO,"result");
				d.setText("スクリーンを切り替えます");
				d.show();
				PanelScreen screen = new PanelScreen();
				Display.setCurrent(screen);
			}
		}
	}
}