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);
}
}
}
}