Original Post
just wondering how to do j2me threading? like a timer in milliseconds, i see things everywhere but they all have a global timer. i want something that i can do something like this this is the applet code, i want to convert it to J2ME or http://www.dgp.toronto.edu/~mjmcguff/learn/java/06-threads/
g.drawImage(IMG,x,10);
thread.sleep(300);
x+=10;
g.drawImage(IMG,x,10);
thread.sleep(100);
import java.applet.*;
import java.awt.*;
public class Threads1 extends Applet implements Runnable {
int width, height;
int i = 0;
Thread t = null;
boolean threadSuspended;
// Executed when the applet is first created.
public void init() {
System.out.println("init(): begin");
width = getSize().width;
height = getSize().height;
setBackground( Color.black );
System.out.println("init(): end");
}
// Executed when the applet is destroyed.
public void destroy() {
System.out.println("destroy()");
}
// Executed after the applet is created; and also whenever
// the browser returns to the page containing the applet.
public void start() {
System.out.println("start(): begin");
if ( t == null ) {
System.out.println("start(): creating thread");
t = new Thread( this );
System.out.println("start(): starting thread");
threadSuspended = false;
t.start();
}
else {
if ( threadSuspended ) {
threadSuspended = false;
System.out.println("start(): notifying thread");
synchronized( this ) {
notify();
}
}
}
System.out.println("start(): end");
}
// Executed whenever the browser leaves the page containing the applet.
public void stop() {
System.out.println("stop(): begin");
threadSuspended = true;
}
// Executed within the thread that this applet created.
public void run() {
System.out.println("run(): begin");
try {
while (true) {
System.out.println("run(): awake");
// Here's where the thread does some work
++i; // this is shorthand for "i = i+1;"
if ( i == 10 ) {
i = 0;
}
showStatus( "i is " + i );
// Now the thread checks to see if it should suspend itself
if ( threadSuspended ) {
synchronized( this ) {
while ( threadSuspended ) {
System.out.println("run(): waiting");
wait();
}
}
}
System.out.println("run(): requesting repaint");
repaint();
System.out.println("run(): sleeping");
t.sleep( 1000 ); // interval given in milliseconds
}
}
catch (InterruptedException e) { }
System.out.println("run(): end");
}
// Executed whenever the applet is asked to redraw itself.
public void paint( Graphics g ) {
System.out.println("paint()");
g.setColor( Color.green );
g.drawLine( width, height, i * width / 10, 0 );
}
}