Незнаю, правильно ли я понял -
Код | public class ScreenManager extends Stack { private static ScreenManager sManager = null;
private ScreenManager() {
}
public static synchronized ScreenManager getInstance() { if (sManager == null) { sManager = new ScreenManager(); } return sManager; }
public void pushScreen(Displayable disp) { super.push(disp); Main.setDisplay(disp); }
public void replaceScreen(Displayable disp) { super.pop(); super.push(disp); Main.setDisplay(disp); }
public void popScreen(int count) { Displayable disp = null; for (int i = 0; i < count; i++) { super.pop(); if (super.empty()) { Main.getInstance().notifyDestroyed(); } else { disp = (Displayable) super.peek(); } } if (disp != null) { Main.setDisplay(disp); } }
public void popScreen() { popScreen(1); }
}
public class MainMenu extends Canvas {
private class MainMenu2 extends Canvas { public MainMenu2() { setFullScreenMode(true); }
public void paint(Graphics g) { g.setColor(0x008000); g.fillRect(80, 50, 100, 120); g.setColor(0xFFFFFF); g.drawString("Quit?", 90, 60, Graphics.TOP | Graphics.LEFT); g.drawString("Yes", 90, 150, Graphics.TOP | Graphics.LEFT); g.drawString("No", 160, 150, Graphics.TOP | Graphics.LEFT); }
protected void keyPressed(int i) { switch (i) { //for MIDP20, Nokia, SonyEricsson : left soft key case -6 : //Destriy app break; //for MIDP20, Nokia, SonyEricsson : right soft key case -7 : //changing display ScreenManager.getInstance().popScreen(); break; } }
}
public MainMenu() { setFullScreenMode(true); }
public void paint(Graphics g) { g.setColor(0); g.fillRect(0, 0, 240, 320); g.setColor(0xFFFFFF); g.drawString("Quit", 10, 280, Graphics.TOP | Graphics.LEFT); }
protected void keyPressed(int i) { switch (i) { //for MIDP20, Nokia, SonyEricsson : left soft key case -6 : MainMenu2 mm2 = new MainMenu2(); //changing display ScreenManager.getInstance().pushScreen(mm2); break; } }
}
|
|