Skip to main content

I Don't Want to Miss a Thing

Posted by editor on February 26, 2007 at 8:47 AM PST

...and that's why I'm putting 75 buttons in my GUI

Apropos of nothing on the front page, but just because it's spectacularly bad, check out the GUI presented in Worse Than Failure's Classic WTF - Enter the Matrix.

By my count, this GUI has 75 buttons, and I may have missed some. Throw in four lists of various sizes, six popup menus, eleven drop-down menus, a dozen or so text fields, two text areas... hey, maybe if we're lucky, some of those buttons are effectively tabs and we can turn up more inscrutable controls.

On the one hand, there's a theory from the field of cognitive psychology that since human short term memory can contain 7 plus-or-minus 2 objects, you don't want to have more than five related items in one meaningful block of screenspace. But the other theory that seems to be more a product of habit or emulation than science is this idea that a GUI needs to have all its functionality graphically represented on screen at all times, perhaps because users wouldn't know it's there otherwise. This is the only thing I can think of to justify the trend in Office suites to have 5-10 toolbars of 10-20 widgets each. It's a doomed effort, because many of these actions don't lend themselves well to a visual representation -- images are well suited to showing things, not abstract actions -- and doing so in the space of a 16x16 icon is madness epitomized.

But I know the real-world considerations that lead to this kind of monstrosity. After all, nobody creates a screamingly crappy GUI like this on purpose. When I worked for Worthless Piece of Crap Wireless Software Company #1, our president spelled out his vision for our GUI in remarkable detail -- seven tabs to represent the major areas of functionality, each split three to five ways with JSplitPanes, with dockable tear-off windows, multiple rows of toolbars, complete madness. All for a glorified XML editor.

Oh yeah, we got merged and laid off en masse before seriously trying to write that monstrosity. A very Dilbert experience, in retrospect...

On the other hand, there's nothing wrong with trying to improve the appearance of a well-conceived GUI. That's what Simon Morris discusses in today's Weblogs.
In Swing Bling, he writes:
"Rich Internet Applications as an alternative to Ajax are starting to get talked about. Adobe think Flash and Flex is the solution. Java's Webstart and Swing are also being discussed in the same way, but deployment issues and Swing's lack of eye candy effects may be an issue. So -- how easy is it to add some 'bling' to Swing...?"

In Dumbed Down WWW, Evan Summers has
"Yet another rant about rich desktop vs. poor browsers, in response to the "Google Operating System" blog touting Google Docs & Spreadsheets over MS-Office, OpenOffice, et al. Excuse the grouchy tone, that's just how i woke up this morning."

Finally, Mark Basler discusses
Redesigning the BluePrints Solutions Catalog Viewer Application to use a fully declarative model ....
"The BluePrints Solutions Catalog Viewer application pulls numerous articles and their samples, that comprise the particular version of the catalog. This blog discusses the redesign of the viewer and the methods used."

In Java Today,
a sample chapter (PDF, 120 KB) is now available from Rich Client Programming: Plugging in to the NetBeans Platform, the "latest and greatest book on the NetBeans Platform", due to be released in 2007. The sample, "Chapter Two: The Benefits of Modular Programming", discusses the concepts of modular (or plug-in-based) programming and how NetBeans both supports and exemplifies this approach.

InfoQ is tracking a number of blogs -- one dating back to a 2003 blog by Joshua Marinacci -- which ponder the question Will dynamic languages save Swing? They ask, "will dynamic languages save Swing? Does Swing need saving? These questions have been discussed in detail over the last few days with opinions varying from JRuby to Groovy as saving Swing to Swing not needing saving."

The Meldware project, just graduated from the Communications incubator, is a Java-based, multi-platform, groupware suite which includes an Email server (IMAP/SMTP/POP), Calendar Server (iCal and soon WCAP), WebMail/WebCalendar (Flash), and Graphical Administration tool. "Together the package provides support for thousands of users concurrently to send and receive email and to schedule meetings. MCS uniquely allows you to store all messages and scheduling events in nearly any database and runs on nearly all popular software and hardware platforms."

This week's Spotlight focuses on
the latest SDN Ask the Experts session, a week to discuss JAX-WS 2.1. JAX-WS 2.0, a follow-on to Java API for XML-based RPC 1.1(JAX-RPC), simplifies the task of developing
web services using Java technology. JAX-WS 2.1 is a maintenance release that adds WS-Addressing capabilities
to JAX-WS 2.0. Got a question about JAX-WS 2.1? Submit your questions from February 26 through March 2
on the Ask the Experts page and get answers from three JAX-WS experts at Sun: Vivek Pandey, Jitendra Kotamraju, and Kohsuke Kawaguchi.

In today's Forums,
soulofhoops could use some guidance for developing
"Can anybody tell me if its possible to run JAI 1.1.3 on MAC? if so then where to download it from!! I trying to run a java program on MAC which uses JAI but i am getting the following exception [...] Can some one help me with this error."

Kleopatra has some guidance for SwingX developers in the reply
Re: Disabled JXTable now looks ... disabled:
"The basic recommendation is to _not_ subclass DefaultTableCellRenderer but start from SwingX renderers. There's a page in the SwingX wiki with a couple of why's and links to relevant discussions here on the forum. If you insist going the Default-path, be sure to fix its bugs - see ComponentProvider api doc for a list of state which it is responsible to reset reliably on each call to getXXComponent."

Finally, Chris Campbell has an appeal for testing and feedback of the Java OpenGL pipeline in
Re: [JAVA2D] java2d Compositing -> OpenGL fragment shaders:
"All I can do is reiterate what I've said before... Our OGL pipeline is only as good as the underlying drivers. We've done a ton of work with Nvidia and ATI to get them to fix the remaining driver bugs, and those efforts have been mostly successful. Lately we've been waiting on both companies to release new drivers that contain fixes for some really annoying crash/artifact bugs that cropped up recently. Both Nvidia and ATI have a large testsuite that exercises Java 2D's OGL pipeline, and this has helped prevent driver regression bugs, but unfortunately it hasn't completely eliminated the problem."

Current and upcoming Java

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

Archives and Subscriptions: This blog is delivered weekdays as
the Java
Today RSS feed
. Also, once this page is no longer featured as the
front page of it will be
archived along with other past issues in the href=""> Archive.

...and that's why I'm putting 75 buttons in my GUI