J2ME Exception - PLEASE HELP

C

cpptutor2000

I am bit of a newbie to J2ME, and I am trying to create a simple
metronome application. I am using Java 1.4.2.16 along with the Sun
WTK.
I am getting an exception as:

java.lang.IllegalArgumentException: type media does not have subtype
Tone
at com.sun.kvem.warn.DefaultWarnUserPolicy.shouldWarnUser(Unknown
Source)
at com.sun.kvem.warn.UserWarningManager.warnUser(Unknown Source)
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:
25)
at java.lang.reflect.Method.invoke(Method.java:324)
at com.sun.kvem.Lime$Connection.callMethod(Unknown Source)
at com.sun.kvem.Lime$Connection.processCommand(Unknown Source)
at com.sun.kvem.Lime$Connection.run(Unknown Source)
at java.lang.Thread.run(Thread.java:534)

The source code is included below:
import java.util.*;
import java.io.*;
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.media.*;
import javax.microedition.media.Manager;
import javax.microedition.media.control.*;


public class TestMIDlet extends MIDlet implements CommandListener
{
private boolean started = false;
private Thread thread = null;
private int timerInterval = 0;
private Timer timer = null;
private TimerTask task = null;
private static List theList = null;
/* private static Vector urls = null; */
private Command exitCommand = new Command("Exit", Command.EXIT, 1);
private Command playCommand = new Command("Play", Command.ITEM, 1);
private Display display = null;




public TestMIDlet ()
{
super();
display = Display.getDisplay(this);
initPlayList();
display.setCurrent(theList);
String interval = getAppProperty("Timer-Interval");
timerInterval = 3000; Integer.parseInt(interval);
System.out.println("Midlet started ... timer interval is "
+timerInterval);
}

public static List getList() {
return theList;
}

protected void startApp()
{
if(!started)
{
started = true;
startTimer();
}
else
{
System.out.println("Eat pussy now ...");
}

synchronized(this)
{

if(thread == null)
{

thread = new Thread()
{

public void run()
{

System.out.println("Thread started ...");
while(thread == this)
{
try
{
Thread.sleep(5000);
}
catch(InterruptedException ie)
{
}
}
System.out.println("Thread terminating ...");

}

};

}

};
thread.start();

}

protected void pauseApp()
{
System.out.println("pauseApp invoked ...");
synchronized(this)
{
if(thread != null)
{
thread = null;
}
}
}

public void commandAction(Command c, Displayable s)
{
if (c == exitCommand)
{
try
{
destroyApp(true);
notifyDestroyed();
}
catch(MIDletStateChangeException msce)
{
}
}

else if ((s == theList &&
c == List.SELECT_COMMAND) ||
c == playCommand)
{

if (theList.getSelectedIndex() == 0)
{ // Simple tone
for(;;)
{
try
{
Manager.playTone(90, 200, 90);
} catch (MediaException ex) {
System.out.println("can't play tone");
}
}
}
}
}


protected void destroyApp(boolean unconditional) throws
MIDletStateChangeException
{
System.out.println("destroyApp called ... unconditional =
"+unconditional);
if(thread != null)
{
Thread bgthread = thread;
thread = null;
try
{
bgthread.join();
}
catch(InterruptedException ie){}
}
stopTimer();
display.setCurrent(null);
}

private void stopTimer()
{
if(timer != null)
{
timer.cancel();
System.out.println("Timer stopped ...");
}
}

private void startTimer()
{

task = new TimerTask(){
private boolean isPaused = false;
private int count = 0;

public void run()
{
if(count++ == 4)
{
try
{
TestMIDlet.this.destroyApp(true);
}
catch(MIDletStateChangeException msche)
{
}
TestMIDlet.this.notifyDestroyed();
return;
}

if(isPaused)
{
TestMIDlet.this.resumeRequest();
isPaused = false;
}

else
{
isPaused = true;
TestMIDlet.this.pauseApp();
TestMIDlet.this.notifyPaused();
}
/*
try
{
System.out.println("trying to play sound");
Manager.playTone(60, 200, 90);
}
catch(MediaException mex)
{
System.out.println("Can't play the fuckin' sound ...");
}
*/
}
};

timer = new Timer();
timer.schedule(task, timerInterval, timerInterval);
}


private void initPlayList()
{
/*urls = new Vector(); */

theList = new List("Pussy Milk", Choice.IMPLICIT);
/*
for (int n = 1; n < 32; n++)
{
String nthURL = "PlayerURL-"+ n;
String url = getAppProperty(nthURL);
if (url == null || url.length() == 0) {
break;
}
String nthTitle = "PlayerTitle-" + n;
String title = getAppProperty(nthTitle);
if (title == null || title.length() == 0) {
title = url;
}
urls.addElement(url);
theList.append(title, null);
}
*/
theList.append("Play", null);
theList.addCommand(exitCommand);
theList.addCommand(playCommand);
theList.setCommandListener(this);
}


}

Any hints would be extremely useful. Thanks in advance for your help.
 
R

Roedy Green

Any hints would be extremely useful.

I would clean up the program language before posting. It is not clear
if you are seriously asking for help or just disguising a **** you.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,968
Messages
2,570,152
Members
46,698
Latest member
LydiaHalle

Latest Threads

Top