I'm working on a java app that I will be using on a sl-c3100.

The problem I have having is that I want my program to use all of the screen that is available at any given moment, but there doesn't seem to be a way to find out what *IS* available? I'm pretty sure that the j2me specification is basically the same as java 1.1.8, and the only way I am aware of for getting the screen size is:

Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

and the problem with that is that it just gives you the absolute size (either 640 x 480, or 480x600), and doesn't take into account the task bar, or the virtual keyboard/kanji pad. This means that when my program launches, it is bigger than the space I have available. Additionally, even if I set it to take the height of the taskbar into account, opening the virtual keyboard covers part of the app.

Is there anyway to figure out how much screen is availble in java, on a zaurus? Also, is there any sort of event I can listen for to handle the case that the virtual keyboard gets opened (so I will know I need to resize my program)?

Thanks for any help you can provide.