Navigating through Multiple Screens in a MIDlet
(Experiment 5)
Version 1:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class SlideShowText extends MIDlet implements CommandListener
{
private Display display;
private Command back;
private Command exit;
private Command nxtBtn;
private Command cmdDisp;
private Form form;
private TextBox txtSlide;
private Form frm;
private TextField txtHello;
private StringItem st = new StringItem("","");
public SlideShowText()
{
display = Display.getDisplay(this);
exit = new Command("Exit", Command.EXIT, 1);
nxtBtn = new Command(">>", Command.OK, 2);
back = new Command("<<", Command.BACK, 3);
cmdDisp = new Command("Display",Command.OK,4);
/* Code for Creating Screen1 */
form = new Form("Slide Show MIDlet - Home");
String msg = "Hello World!!!!!!!";
form.append(msg);
form.addCommand(exit);
form.addCommand(nxtBtn);
form.setCommandListener(this);
/* Code for Creating Screen2 */
txtSlide = new TextBox("Second Screen of Slide Show", "Press Prev Button to go back to Home screen & Next Button to go to Third Screen.", 81, 0);
txtSlide.addCommand(back);
txtSlide.addCommand(nxtBtn);
txtSlide.setCommandListener(this);
/* Code for Creating Screen3 */
frm = new Form("Third Screen of Slide Show");
txtHello = new TextField("Welcome Text", msg, 50, 0);
frm.append(txtHello);
frm.addCommand(back);
frm.addCommand(cmdDisp);
frm.addCommand(exit);
frm.setCommandListener(this);
}
public void startApp()
{
display.setCurrent(form);
}
public void pauseApp()
{ }
public void destroyApp(boolean unconditional)
{ }
public void commandAction(Command command, Displayable displayable)
{
if (command == back)
{
if (displayable == frm)
{
display.setCurrent(txtSlide);
}
else
{
display.setCurrent(form);;
}
}
else if (command == exit)
{
destroyApp(false);
notifyDestroyed();
}
else if (command == nxtBtn)
{
if (displayable == form)
{
display.setCurrent(txtSlide);
}
else if (displayable == txtSlide)
{
display.setCurrent(frm);
}
}
else if (command == cmdDisp)
{
st.setText("");
st.setText(txtHello.getString());
frm.append(st);
}
}
}
Output:
Version 2 (Displaying One after the Other like Slideshow):
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class SlideShow extends MIDlet implements CommandListener {
public Form slide1;
public Form slide2;
public Form slide3;
public Command Exit;
public Display display;
public SlideShow()
{
display=Display.getDisplay(this);
Exit=new Command("Exit",Command.EXIT,1);
slide1=new Form("Slide1");
slide1.append("This is Slide number 1");
slide1.addCommand(Exit);
slide2=new Form("Slide2");
slide2.append("This is Slide number 2");
slide2.addCommand(Exit);
slide3=new Form("Slide3");
slide3.append("This is Slide number 3");
slide3.addCommand(Exit);
slide1.setCommandListener(this);
slide2.setCommandListener(this);
slide3.setCommandListener(this);
}
public void startApp() {
Thread runner = new Thread(new ThreadRunner(display,slide1,slide2,slide3));
runner.start();
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command command,Displayable displayable)
{
if(displayable==slide1)
{
if(command==Exit) notifyDestroyed();
}
else if(displayable==slide2)
{
if(command==Exit) notifyDestroyed();
}
else if(displayable==slide3)
{
if(command==Exit) notifyDestroyed();
}
}
}
class ThreadRunner implements Runnable
{
Display display;
public int c=0;
public Form slide1;
public Form slide2;
public Form slide3;
public ThreadRunner(Display display,Form slide1,Form slide2,Form slide3)
{
this.display = display;
this.slide1=slide1;
this.slide2=slide2;
this.slide3=slide3;
}
public void run()
{
while(true)
{
c++;
if(c==1)
display.setCurrent(slide1);
else if(c==2)
display.setCurrent(slide2);
else if(c==3)
display.setCurrent(slide3);
else if(c==4)
c=0;
try
{
Thread.sleep(1500);
}
catch(Exception ex)
{ }
}
}
}
import javax.microedition.lcdui.*;
public class SlideShow extends MIDlet implements CommandListener {
public Form slide1;
public Form slide2;
public Form slide3;
public Command Exit;
public Display display;
public SlideShow()
{
display=Display.getDisplay(this);
Exit=new Command("Exit",Command.EXIT,1);
slide1=new Form("Slide1");
slide1.append("This is Slide number 1");
slide1.addCommand(Exit);
slide2=new Form("Slide2");
slide2.append("This is Slide number 2");
slide2.addCommand(Exit);
slide3=new Form("Slide3");
slide3.append("This is Slide number 3");
slide3.addCommand(Exit);
slide1.setCommandListener(this);
slide2.setCommandListener(this);
slide3.setCommandListener(this);
}
public void startApp() {
Thread runner = new Thread(new ThreadRunner(display,slide1,slide2,slide3));
runner.start();
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional) {
}
public void commandAction(Command command,Displayable displayable)
{
if(displayable==slide1)
{
if(command==Exit) notifyDestroyed();
}
else if(displayable==slide2)
{
if(command==Exit) notifyDestroyed();
}
else if(displayable==slide3)
{
if(command==Exit) notifyDestroyed();
}
}
}
class ThreadRunner implements Runnable
{
Display display;
public int c=0;
public Form slide1;
public Form slide2;
public Form slide3;
public ThreadRunner(Display display,Form slide1,Form slide2,Form slide3)
{
this.display = display;
this.slide1=slide1;
this.slide2=slide2;
this.slide3=slide3;
}
public void run()
{
while(true)
{
c++;
if(c==1)
display.setCurrent(slide1);
else if(c==2)
display.setCurrent(slide2);
else if(c==3)
display.setCurrent(slide3);
else if(c==4)
c=0;
try
{
Thread.sleep(1500);
}
catch(Exception ex)
{ }
}
}
}