Skip to main content

An HTML client

Posted by daniel on October 21, 2003 at 9:18 AM PDT

While others argue about Swing vs. the SWT, there are many who sidestep the issue by using an HTML based front end.

Last month Will Iverson wrote about this in his blog Bandwidth, Installers, and Schema Updates saying

I really like Swing for certain kinds of development, but I've always been a bit surprised at how hard it is to build a really good user interface with it. I would be the last person to say that we should all throw out all of our Swing apps and reinvent them as web apps. Instead, think about all of that great software written for the web and locked away on servers in the form of JSP code.

In Also in Java Today , we link to Allen Holub's JavaWorld article Create client-side user interfaces in HTML he extends JEditorPane to a component he calls HTMLPane to better use HTML on the client side. This component is designed to address some of the problems Allen has with the way JEditorPane renders HTML:

[It] is not particularly good at handling complex HTML. It doesn't do a great job with nested tables, and it doesn't do Cascading Style Sheets (CSS) very well. [...] Finally, JEditorPane doesn't do a particularly good job of laying out things like radio buttons. They aren't aligned properly with the text baseline, and they always display a gray background, so they don't work well if you change the page's background color (with a style on the < body...> tag, for example).

These problems are not nearly as important to Holub as the inability to easily handle forms.

To be useful for specifying a client-side UI, you want the form data to go back to the program that displayed the form, not to some remote server. You also need a convenient way to add custom tags for nonstandard input or display purposes or to provide place holders for standard Swing JComponents you want to use on the form. (JEditorPane lets you do this, but the mechanism is far from convenient.) Finally, you need to be [able to] handle things like a Cancel button, which doesn't exist in HTML.

We also link to an introduction to using the Java 3D APIs. In Introduction to the Java3D API you will get a quick introduction to the standard steps in creating a simple three dimensional scene. Unfortunately, Java3D is not supported on Mac OS X so I had to start up the Windows box in the corner for the first time in a month to compile and run the examples.

In Projects and Communities , the project spotlight this week comes from the Java Games community. The Wurm Online game is built on top of two projects in the core-games section of the Java Games projects: JOGL and the analogous audio project JOAL. The Java Patterns community is highlighting the Core J2EE Patterns online catalog. Following today's theme of web based front ends, you should check out the diagram of the Core J2EE Patterns that allow you to link to further information about each of the patterns.

In Weblogs today James Gosling submits a travelog from his time with Java in China. Jonathan Simon continues with the recent theme of the jApps that Chris Adamson wrote about. Jonathan plays with a music listening device and writes

This is the kind of stuff I hope we see more of. This is also a perfect Java app. I dont know whats its written in, but J2ME some networking, and a couple of beefy servers and database would kick this out.
I would love to see an emphasis on more real world applicable uses of technology and interfaces

In today's News Headlines :

Registered users can submit news items for the href=""> News Page using our
news submission form.
All submissions go through an editorial review by news director Steve
Mallet before being posted to the site. You can also subscribe to the href=""> News RSS

Current and upcoming Java Events:

Registered users can submit event listings for the href=""> Events Page using our href=""> events submission form.
All submissions go through an editorial review before being posted to the

This blog is delivered weekdays as the href="">Java Today RSS
feed. Once this page is no longer featured as the front page of href=""> Java Today it will be archived at href=""> You can
access other past issues in the href=""> Archive.