CodeNameOne is a project for creating cross platform apps through java. This project is based off of XmlVm, but has a lot more features and better support.
They created plugins for both Eclipse and Netbeans that include a ui editor. This seems to me like the best option so far for creating ui based cross platform apps. I have used it and found it easy to install and use. The best part is, it is free! The only catch is that you have to use their build servers to build their code. This is also free, but only up to one hundred builds per user unless you are a contribute or have been given more from a developer. They say this is for spam purposes and keeps the servers from being overloaded, but they also allow you to purchases more builds and more support if need be. If you are a Java developer and want to make apps for all platforms, this seems like the best option.
The ui api is based off of the Java Swing library. This is great for those transitioning straight from desktop apps to mobile apps. As I am making a desktop application in Java, this is a great option for me since I can use my desktop code and I don’t have to make a transition to another language. It is definitely worth checking out.