I think I've admitted before that I'm a World of Warcraft addict. I've "frozen" my account, as Blizzard likes to term it, as I finish up some writing that's long overdue. Still, I'm stressed, and stress breeds some sort of therapy via painfully repetitive tasks that slowly progress towards the completion of some task of minor importance.

Enter Netbeans, the WoW replacement.

Luckily things are not all bad. Thanks to some Swing hacks over on O'Reilly, I've discovered how to make Swing objects partially (or completely) transparent in OS X. I've enjoyed using iTerm on OS X in large part b/c its transparency allows you to get dual use out of your screen real estate. I can hack along merrily in VIm and still see when I get new mail, for instance.

Unfortunately I can't check for mail and see if I've gotten a new iChat message, etc. Enter JavaMail and Swing hacks!

Okay, what I've got pictured, below, isn't exactly a working app, but does give you an idea of what you can do with a single line in OS X's Java. (That line in this case, btw, is, this.setBackground(new java.awt.Color(.8f, .8f, .8f, 0.3f));.)


Transparency in Swing


Check out the corners of jButton1, a button "of correct height" that keeps its rounded look. Smaller and larger buttons on OS X go from the standard look to the more rectangular format of jButton2, which also has some border issues if you look a bit more closely.

Still, the return on a single line of code is very nice, if we ignore Apple's penchant for changing Swing and Java behaviour on a dime.

As an aside, I'm also still quite impressed with Matisse, Netbeans' new layout manager that finally makes its GUI RAD RAD. Nearly VB-style form creation, and components adjust with form (sorry, Frame) resizes every bit as well as they do in Windows.Forms. A bit processor hungry still, but a great improvement. It's a shame Java is already so far back in the client app race. Messing with event thread jive recently has reminded me of one reason why it'll stay that way for a while yet.