What I'm really looking for is a UI framework using Java that's as cross-platform as possible and also has a rich set of UI functionality.
Assuming a desktop deployment, the three major frameworks are Swing, SWT and JavaFX.
Try the JavaFX Ensemble sample to see if that technology would suit your needs.
I know that I can convert a Swing application to an Applet or a Java Web Start application. Is it possible to do the same with an application that's not Swing, say Qt using Java?
QT is native code that doesn't run on the JVM - it is not a Java UI framework. Applet and Web Start programs require a Java class as their entry point. Any use of QT is such a scenario would require a Java <=> QT adaption layer and I am not aware of the existence of any such thing - you would probably need to build it yourself based on a technology like JNI.
Being able to run the application as either a desktop or a Web application would be preferable.
See the JavaFX deployment guide for various JavaFX deployment options and the Swing deployment guide for various Swing deployment options.
The definition of Web application is pretty nebulous. Here are some distinct scenarios:
- You are restricted to just html5 => produce the html on a server to
distribute to the client.
- You want html launching a Java
application => then something like WebStart in combination with the
Java Deployment Toolkit can be used.
- You will be rendering a
JavaFX application inside a browser window => then use a browser embedded app.
There are many pitfalls for embedding java applications is web pages (just use google to discover some of them).