Я только начинаю вникать в чудеса Java ME, но расстроился, пытаясь создать поток ...
Ниже приведен код, который компилируется абсолютно нормально. Однако, как только я устанавливаю его на свой G600 и запускаю, появляется сообщение «Ошибка Java-игры».
Мой метод помещения его в jar-файл и его установки работает, так как я создал игру без потоков, и она отлично работает.
import java.util.Random;
import javax.microedition.lcdui.*;
import javax.microedition.lcdui.game.*;
import javax.microedition.midlet.*;
public class CanvasTest extends MIDlet {
Display display;
public CanvasTest() {
}
public void startApp() {
TestCanvas thecanvas = new TestCanvas();
display = Display.getDisplay(this);
display.setCurrent(thecanvas);
}
public void pauseApp() {}
public void destroyApp(boolean unconditional) {}
}
class TestCanvas extends GameCanvas implements Runnable {
Font font;
int width;
int height;
boolean running = true;
public TestCanvas() {
super(false);
setFullScreenMode(true);
width = getWidth();
height = getHeight();
Thread thisThread = new Thread(this);
thisThread.start();
}
public void paint(Graphics g) {
Random rand = new Random();
g.setColor(rand.nextInt(255), rand.nextInt(255), rand.nextInt(255));
g.fillRect(0, 0, width, height);
}
public void run() {
while(running) {
paint(getGraphics());
flushGraphics();
try {
Thread.sleep(50);
}
catch(InterruptedException ex) {}
}
}
};
Примечание: да, это не игра, она просто демонстрирует проблему, с которой я сталкиваюсь.
Заранее спасибо!