I Still Haven't Found What I'm Looking For

OK, a personal grudge: I hate horizontal scrollbars. Hate, hate, hate, hate, hate them. When I see a GUI that uses both vertical and horizonal scrollbars, particularly around a table, my first thought is always that the GUI needs a profound rethink. See Hack #21 in Swing Hacks for an example of how much I hate inappropriate horizontal scrolling: it tells readers to hit themselves in the head with the book if they think horizontal scrolling is the correct fix to the example's column-sizing problem. IMHO, the only defense is when the scrollbars are a view onto a single cohesive "thing", like a spreadsheet or an image... and even then they still tend to suck.

Author Slav Boleslawski agrees with me on this latter point. He's taking on the issue of providing better navigation and viewing of zoomed images in today's Feature Article, in which he writes:

When an image is larger than its container's display area, a scroll pane with scroll bars is commonly used to allow the user to move the image around the container's view. Scroll bars also give rough indication about the zoom level and how far away the displayed area of the image is from the top, bottom, left, and right edges of the image.

Scroll bars do not work well with zoomed images, especially at large zoom levels. In most cases, the user needs to use both the horizontal and vertical scroll bars to bring various areas of the image into the view. Scroll bars are also of little value when it comes to "having a larger picture": they say nothing about the areas adjacent to the area currently in the view.

What Slav offers instead is the topic of his article, A Navigable Image Panel. With a combination of GUI concepts drawn from the world of consumer electronics, plus a lot of Java 2D graphic cleverness, he offers a compelling GUI component that not only makes it easier to work with zoomed images, but also uses smart decisions about scaling algorithms to provide an optimal perforfmance/appearance trade-off.

A new SDN article takes a look at International Enhancements in Java SE 6. "One important strength of the Java Platform, Standard Edition (Java SE) has always been its internationalization and localization support. The platform continues to evolve, and Java SE 6 provides developers even more control over how they access and use locale-sensitive resources in their applications. Java SE 6 provides the following major enhancements to its internationalization support..."

As noted by The Register and Slashdot, the JPC project at Oxford University has managed to emulate an x86 PC in Java. "JPC is a pure Java emulation of an x86 PC with fully virtual peripherals. It runs anywhere you have a JVM, whether x86, RISC, mobile phone, set-top box, possibly even your refrigerator!" An online demo applet will boot you into DOS, and doing a c: will take you to some game demos.

Pieter-Jan Savat has duplicated a popular graphic effect in his blog entry JBookPanel and the page turn effect: "Probably every magazine or newspaper that is available online uses a Flash animation together with the page turn effect to make the experience as realistic as possible for its readers. So I thought it might be neat to try and recreate this effect in Java. The result is the JBookPanel. It's basically a JPanel that uses a fixed set of images to draw its pages."

BrianÂ Leonard digs intoBuilding a Ruby Sample for NetBeans.
"We're in the process of creating some sample applications to ship with the NetBeans Ruby module, one of which will be based on the screencast, Putting Flickr on Rails. You can just download and run the sample project, or build it from scratch as documented here."

PetrÂ Panteleyev discussesOptional Packages in phoneME Advanced:
"This post provides a sort of introduction to what we are doing for Java ME optional packages in the phoneME Advanced project."

In today's Forums,Drinkwater, GJ considers two alternatives for anEJB Web Service endpoint architecture:
"I have quite a few ejbs that I wish to expose as web services and I was wondering whats the best way to do this. Most of the methods are transactional and need to be thread safe. I could A) annontate each ejb with @WebService which means the clients have to import dozens of wsdl files for each ejb or B) Create one ejb, and use a façade pattern to expose all the methods as one wsdl file. This means though that this ejb will be the bottleneck of the application, with every client having to have a instance of the bean to perform an operation on the other beans. These two solutions are not really ideal. Are there any other solutions?"

cybohemia reports device challenges whiletesting MIDP1 midlet on older CDMA handset:
"Hi. We are working with a U.S. carrier that has agreed to supply us with a number of older handsets (Nokia 2125) to pilot a J2ME midlet. The midlet is entirely MIDP 1.0 and has a 62k footprint. It has been tested successfully on a variety of relatively newer handsets (e.g. Motorola v551) and similarly dated handsets (e.g. Nokia 6010). But we are told it does not even load on a 2125. (We provided a link to the JAD/JAR for an OTA deployment.) Could it be that the 2125 is a CDMA handset? If so - or even if not - would anyone have any ideas about the situation and potential work-arounds?"

How do you sum up GlassFish in a way that can fit on a banner or even a button ad?
InRe: GlassFish Catch Phrase, Jamey Wood writes:
"With GlassFish, I think we're at a stage where including a statement about exactly what we are is still very important. (And yes, I realize that Project GlassFish covers more than the appserver, but I think it's best to deal with that somewhere other than the very limited pixel space of a button.)

Registered users can submit event listings for the
href="http://www.java.net/events">java.net Events Page using our
href="http://today.java.net/cs/user/create/e">events submission form.
All submissions go through an editorial review before being posted to the
site.

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 java.net it will be
archived along with other past issues in the
href="http://today.java.net/today/archive/">java.net Archive.