Rabu, 11 Februari 2009

Cara Membuat MidletThreadBackground DI Java

Percobaan 1
ThreadBackground
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
public class MidletThreadBackground extends MIDlet {
private Display display;
private ThreadBackgroudCanvas threadCanvas = new ThreadBackgroudCanvas();
public void startApp() {
display = Display.getDisplay(this);
threadCanvas.start();
display.setCurrent(threadCanvas);
}
public Display getDisplay() {
return display;
}
public void pauseApp() { }
public void destroyApp(boolean unconditional) {
exit();
}

public void exit() {
threadCanvas.stop();
System.gc();
notifyDestroyed();
}
}

Percobaan 2
ThreadBackgroudCanvas
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
public class ThreadBackgroudCanvas extends GameCanvas implements Runnable {
private boolean isPlay; // gambar akan berjalan apabila bernilai true
private long delay; // di beri nilai konstanta
private int currentX, currentY; // Pergerakan untuk koordinat 'X’ dan ‘Y'
private int width; // untuk lebar screen
private int height; // untuk tinggi screen
private int x;
//Konstruktor dan inisialisasinya
public ThreadBackgroudCanvas() {
super(true);
width = getWidth();
height = getHeight();
currentX = width / 2;
currentY = height / 2;
delay = 20;
}
// Method start dijalankan awal peggunaan thread dan di ulang-ulang
public void start() {
isPlay = true;
Thread t = new Thread(this);
t.start();
}
Versi 1.0 Distributed By Meruvian Education
Modul Praktikum Thread
public void stop() {
isPlay = false;
}
// method run abstrak dari Runnable Mejalankan pertamakali pada graphics
public void run() {
Graphics g = getGraphics();
while (isPlay == true) {
x++;
if(x<-120) {
x=0;
}else {
x=x-5;
}
drawScreen(g);
try { Thread.sleep(delay); }
catch (InterruptedException ie) { }
}
}
// Method drawScreen untuk menggambar Graphics
private void drawScreen(Graphics g) {
try {
g.setColor(255,255,255);
g.fillRect(0,0,getWidth(),getHeight());
Image image = Image.createImage("/gbr-bg.png");
g.drawImage(image, x, (getHeight()-image.getHeight())/2, Graphics.TOP | Graphics.LEFT);
}catch(Exception e){ }
flushGraphics();
}
}



Tidak ada komentar:

Posting Komentar