Wednesday, May 4, 2011

What is Java 2 Micro Edition?



Java is known primarily as a server-side programming environment, centered around the technologies that make up the Java 2 Enterprise Edition (J2EE), such as Enterprise JavaBeans (EJBs), servlets, and JavaServer pages (JSPs). Early adopters of Java, however, will recall that it was originally promoted as a client-side application environment. In fact, Java was originally designed as a programming language for consumer appliances. Now Java is returning to its roots with Java 2 Micro Edition, or J2ME for short.



The Java 2 Platform
What we commonly refer to as "Java" is more formally known as the Java 2 Platform. The Java 2 Platform is split into three editions: Java 2 Standard Edition (J2SE), Java 2 Enterprise Edition (J2EE), and Java 2 Micro Edition (J2ME). Each edition of the platform provides a complete environment for running Java-based applications, including the Java virtual machine (VM) and runtime classes.

Java 2 Micro Edition
In J2ME, the Java runtime environment is adapted for constrained devices - devices that have limitations on what they can do when compared to standard desktop or server computers. For low-end devices, the constraints are fairly obvious: extremely limited memory, small screen sizes, alternative input methods, and slow processors. High-end devices have few, if any, of these constraints, but they can still benefit from the optimized environments and new programming interfaces that J2ME defines.

Monday, May 2, 2011

J2ME Thread Processing Example



              
          


In the given example, you will learn about the thread and how thread works in
J2ME application. An application can run multiple activities simultaneously
using thread. Here we have defined different states of thread...

 The states of Thread is:

  • running:- Executing code.
  • ready:- Ready to execute code.
  • suspended:- Waiting on an external event. 
  • terminated:- Finished executing code.

In the output First of all process() thread will be executed then start()
thread and then run() thread will be executed.

The Application is as follows:

 

Source Code of ThreadProcessing.java 

 




import java.io.*;

import javax.microedition.io.*;

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;



public class ThreadProcessing extends MIDlet implements CommandListener{

  private Display display;

  private Ticker ticker;

  private Form form; 

  private Command exit, start;



  public ThreadProcessing(){

    form = new Form("Thread Processing");

    ticker = new Ticker ("10/17/2008 3:59:59 PM     ACC LTD 489.05 (-6.42%)

       BHARTI ARTL 676.80 (-7.47%)       BHEL 1,194.80 (-9.00%)

       ACC LTD 489.05 (-6.42%)    BHARTI ARTL 676.80 (-7.47%)

       BHEL 1,194.80 (-9.00%)       DLF LTD* 291.30 (-10.34%)

       GRASIM INDUSTRIES LTD. 1,293.40 (-5.71%)       HDFC BANK LT 1,024.05 (-5.82%)"
);

    exit = new Command("Exit", Command.EXIT, 1);

    start = new Command("Start", Command.SCREEN, 2);    

  }



  public void startApp(){

    display = Display.getDisplay(this);

    form.addCommand(exit);

    form.addCommand(start );    

    form.setCommandListener(this);

    form.setTicker(ticker);

    display.setCurrent(form);

  }



  public void pauseApp(){ }



  public void destroyApp(boolean unconditional){

    notifyDestroyed();

  }



  public void commandAction(Command c, Displayable displayable){

    String label = c.getLabel();

    if (label.equals("Exit")){

      destroyApp(false);

    }else if (label.equals("Start")){

      Process process = new Process(this);

      process.start()

    

  }

}



class Process implements Runnable{

  private ThreadProcessing MIDlet;



  public Process(ThreadProcessing MIDlet){ 

    this.MIDlet = MIDlet;

    System.out.println("Thread Process...");

  }



  public void run(){

    try{

      transmit();

      System.out.println("Thread Run...");

    }catch(Exception error){ 

      System.err.println(error.toString());

    }      

  }



  public void start(){

    Thread thread = new Thread(this);

    try{

      thread.start();

      System.out.println("Thread Start...");

    }catch(Exception error){}

  }



  private void transmit() throws IOException{} 



}


 

Output:

 

Download Source Code

J2ME Thread Processing Example



              
          


In the given example, you will learn about the thread and how thread works in
J2ME application. An application can run multiple activities simultaneously
using thread. Here we have defined different states of thread...

 The states of Thread is:

  • running:- Executing code.
  • ready:- Ready to execute code.
  • suspended:- Waiting on an external event. 
  • terminated:- Finished executing code.

In the output First of all process() thread will be executed then start()
thread and then run() thread will be executed.

The Application is as follows:

 

Source Code of ThreadProcessing.java 

 




import java.io.*;

import javax.microedition.io.*;

import javax.microedition.lcdui.*;

import javax.microedition.midlet.*;



public class ThreadProcessing extends MIDlet implements CommandListener{

  private Display display;

  private Ticker ticker;

  private Form form; 

  private Command exit, start;



  public ThreadProcessing(){

    form = new Form("Thread Processing");

    ticker = new Ticker ("10/17/2008 3:59:59 PM     ACC LTD 489.05 (-6.42%)

       BHARTI ARTL 676.80 (-7.47%)       BHEL 1,194.80 (-9.00%)

       ACC LTD 489.05 (-6.42%)    BHARTI ARTL 676.80 (-7.47%)

       BHEL 1,194.80 (-9.00%)       DLF LTD* 291.30 (-10.34%)

       GRASIM INDUSTRIES LTD. 1,293.40 (-5.71%)       HDFC BANK LT 1,024.05 (-5.82%)"
);

    exit = new Command("Exit", Command.EXIT, 1);

    start = new Command("Start", Command.SCREEN, 2);    

  }



  public void startApp(){

    display = Display.getDisplay(this);

    form.addCommand(exit);

    form.addCommand(start );    

    form.setCommandListener(this);

    form.setTicker(ticker);

    display.setCurrent(form);

  }



  public void pauseApp(){ }



  public void destroyApp(boolean unconditional){

    notifyDestroyed();

  }



  public void commandAction(Command c, Displayable displayable){

    String label = c.getLabel();

    if (label.equals("Exit")){

      destroyApp(false);

    }else if (label.equals("Start")){

      Process process = new Process(this);

      process.start()

    

  }

}



class Process implements Runnable{

  private ThreadProcessing MIDlet;



  public Process(ThreadProcessing MIDlet){ 

    this.MIDlet = MIDlet;

    System.out.println("Thread Process...");

  }



  public void run(){

    try{

      transmit();

      System.out.println("Thread Run...");

    }catch(Exception error){ 

      System.err.println(error.toString());

    }      

  }



  public void start(){

    Thread thread = new Thread(this);

    try{

      thread.start();

      System.out.println("Thread Start...");

    }catch(Exception error){}

  }



  private void transmit() throws IOException{} 



}



 

Output:

 

Download Source Code

J2ME Ticker Example

This is the simple Ticker example which is used to auto scroll the data on
the top of the form. It continuously scroll the data. The javax.microedition.lcdui.Ticker
has only one constructor that is:



Ticker(String str):- This is used to Constructs a new Ticker object,
given its initial contents string.

And it has two methods:

getString():- This is the String type methods which Gets the string
currently being scrolled by the ticker.

setString(String str):- This is the void type, it Sets the string to
be displayed by this ticker.

 

The Application looked as below:

 

Source Code of TickerExample.java 






import javax.microedition.midlet.*;

import javax.microedition.lcdui.*;



public class TickerExample extends MIDlet implements CommandListener{

  private Display display; 

  private Ticker ticker; 

  private Command exit;

  private Form form;

    

  public TickerExample(){

    form = new Form("BSE Stock Exchange Ticker");

    display = Display.getDisplay(this);

    ticker = new Ticker ("10/17/2008 3:59:59 PM     ACC LTD 489.05 (-6.42%)     

      BHARTI ARTL 676.80 (-7.47%)       BHEL 1,194.80 (-9.00%)  

      ACC LTD 489.05 (-6.42%)  BHARTI ARTL 676.80 (-7.47%)       

      BHEL 1,194.80 (-9.00%)       DLF LTD* 291.30 (-10.34%)       

      GRASIM INDUSTRIES LTD. 1,293.40 (-5.71%)       

      HDFC BANK LT 1,024.05 (-5.82%)"
);

    exit = new Command("Exit", Command.SCREEN, 1);

    form.addCommand(exit);

    form.setCommandListener(this);

    form.setTicker(ticker);

  }



  public void startApp(){

    display.setCurrent(form);

  }



  public void pauseApp(){ }



  public void destroyApp(boolean unconditional){

    notifyDestroyed();

  }



  public void commandAction(Command c, Displayable display){

    String label = c.getLabel();

    if (label.equals("Exit")){

      destroyApp(false);

    }

  }

}





Download Source Code

Search This Blog

Total Pageviews