In folgendem Quelltext ist ein Fehler, der vom Compiler leider nicht gefunden wird und der sich nur durch das Abstürzen des Programmes nach dem Start zeigt. Wäre nett wenn ihr mir helfen könntet.
Java:
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import java.io.*;
public class Metronom extends MIDlet implements ItemStateListener, CommandListener
{
Form fenstereins = new Form ("Metronom");
Form fensterzwei = new Form ("Metronom");
Display display = Display.getDisplay (this);
Zeichnerklasse z = new Zeichnerklasse ();
ChoiceGroup einheit = new ChoiceGroup ("Einheit", Choice.EXCLUSIVE, new String [] {"BpM", "Hz"}, null);
TextField frequenz = new TextField ("Frequenz","", 5, TextField.NUMERIC);
ChoiceGroup taktEinheit = new ChoiceGroup ("Takteinheit", Choice.EXCLUSIVE, new String [] { "Viertel", "Achtel","Sechzehntel"}, null);
Command weiter = new Command ("Weiter", Command.SCREEN, 1);
Command beenden = new Command ("Beenden", Command.EXIT, 2);
Command start = new Command ("Start", Command.OK, 1);
Command stop = new Command ("Stop", Command.SCREEN,2);
int intFrequenz;
int wartezeit;
public Metronom ()
{
}
public void startApp ()
{
display.setCurrent (fenstereins);
fenstereins.setCommandListener (this);
fenstereins.addCommand (weiter);
fenstereins.addCommand (beenden);
fenstereins.setItemStateListener (this);
fenstereins.append (einheit);
fenstereins.append (frequenz);
fensterzwei.setCommandListener (this);
fensterzwei.addCommand (start);
fensterzwei.setItemStateListener (this);
fensterzwei.append (taktEinheit);
z.setCommandListener (this);
z.addCommand (stop);
}
public void itemStateChanged (Item item)
{
if (item == einheit)
{
int index = einheit.getSelectedIndex ();
if (index == 0)
{
intFrequenz = (Integer.parseInt (frequenz.getString ()))/60;
wartezeit = (1/intFrequenz)*1000;
}
else if (index == 1)
wartezeit = (1/intFrequenz)*1000;
}
}
public void commandAction (Command c, Displayable d)
{
if (c == weiter)
display.setCurrent (fensterzwei);
else if ( c == beenden)
notifyDestroyed ();
else if (c == start)
{
display.setCurrent (z);
z.start();
}
else if (c == stop)
{
display.setCurrent (fenstereins);
z.stop();
}
}
public void pauseApp ()
{
}
public void destroyApp (boolean unkonditional)
{
}
}
class Zeichnerklasse extends Canvas implements Runnable
{
int helfer = 0;
int helfershelfer;
boolean test=true;
Metronom a = new Metronom ();
public void paint (Graphics g)
{
g.setColor (215,255,191);
g.fillRect (0,0, getWidth(), getHeight());
if (helfer == 0)
{
g.setColor (48,75,255);
g.fillRect (70,50,100,100);
helfer++;
}
else if (helfer ==1)
{
g.setColor (255,122,50);
g.fillRect (70,200,100,100);
helfer--;
}
else
{
System.out.println ("Fuck");
}
}
public void start ()
{
Thread thread = new Thread ();
thread.start ();
test = true;
}
public void run ()
{
while (test = true)
{
repaint ();
try
{
Thread.sleep ( a.wartezeit);
}
catch (InterruptedException o)
{
}
}
}
public void stop ()
{
test = false;
}
}