Stuff to Play With: the EnumComboBoxModel
April 17th, 2006
One of the great things about having a project like SwingLabs is that it gives me a place to put classes I've built that others might find useful. Today I'm going to describe my recent addition to SwingLabs, the EnumComboBoxModel
, a cute little class that lets you stuff enums directly into your comboboxes with no extra work.
The Summer of 1998
April 10th, 2006
Some time ago I wrote an article for Slashdot discussing Be, Apple, and the future of operating systems. The mention of Be should indicate just how far ago this was. The other day I decided to try to find the article both to find out if I was at all correct in my conclusions, and to see if my writing has improved at all. Well, I couldn't find the relevant article, as Slashdot's archives are not complete (and their search engine even less so) but as I was going backwards in time I ran across some articles that are quite interesting today. I suppose it's odd to think of something as recent as 6 years ago in an historical context, but in Internet years it must be centuries. So let's dive in:
Once more Matisse Rocks
March 9th, 2006
I would just like to say that I'm more and more impressed with Matisse. It does it's absolute best to provide a realistic preview of running components at design time. Today I was building some component tests and was amazed to see that indeterminate progress bars are animated while in the designer! Have a look!
Props to the Trig Teacher
March 1st, 2006
I'm working on a program that requires I convert degrees of longitude into miles. Since we are mapping radians on to the sphere (mostly) that is Earth, I needed to do some trigonometric calculations. Upon whipping out some paper and pencil and drawing the triangles I needed I realized had to remember which function to use. Is it Sine, Cosine, or Tangent? Hypotenuse over Adjacent? Adjacent over Opposite? All... blurring... together....
All hail the PropertyChangeListener
February 26th, 2006
Often times when you are building an application you need to hook multiple components together in such a way that when one component changes others must do something. When you are building custom components there is often the temptation to build a custom set of listeners to go along with it. This seems like good component etiquette; after all this is how most of the javax.swing.*
components are built. Still, that's a big pain to create new listener types that must be implemented, just for observing simple changes. Plus it tightly couples your classes which can make your code brittle when making changes later. There must be a better way. And there is!
My Mustang Beta Thoughts
February 21st, 2006
By now you've probably all read
SwiXml builds better guis
February 21st, 2006
Just a quick note to let you know that I've got a new article up about SwiXml. SwiXml is an open source library for building Swing GUI layout using XML instead of code (ie: the evilness that is GridBagLayout). In the article you'll learn what you need to get started using it and how it works. Check it out and let me know what you think. Also let me know what other articles you'd like to see. I'm looking for new ideas. Thanks Josh