Another way to develop applications is with PersonalJava. PersonalJava can be thought as a subset of Java SE, and it requires you to develop with JDK 1.1.8. PersonalJava offers better APIs and more control over the UI than MIDP 1.0 does, but because it is only JDK 1.1.8 (and because we are using JDK 1.4.2 now and 5.0 is in beta 2), it's obvious that some progress has been made.
PersonalJava is in the Sun's End of Life program, which means that soon it will not be supported. So don't spend too much time learning about it unless you have a existing application and you need to maintain it (or unless you just want to try it just for the experience).