JComboBox and equals()

For some reason, my PrinterData object has a broken equals() method. This means that if you call somePrinter.equals(somePrinter), the result is false. Yuck!

How did I discover this simple bug?
When I put the PrinterData object in a JComboBox, the JComboBox wouldn't let me select anything! Weird.

An obvious extension to JScrollPane

The JTable is a large abuser of the JScrollPane. Out-of-the-box, JTable doesn't have a header. Only when you add it to a JScrollPane does it get its header, which gets stuffed into the JScrollPane's top track so that it is not scrolled. This is a hack. But it works. When you scroll down in your JTable, the header doesn't scroll off the screen. It's clever, but it bites many a programmer in the ass when they try to customize the JTable. For example, when you have an overly wide JTable and you scroll it horizontally, the header isn't in a scroll track so it doesn't scroll quite right.

And now, for another similar hack. The fine hackers at JDNC have decided to support column-locking. This allows you to lock the leftmost column in place, and horizontally scroll through the rest of the columns. The idea is exactly the same as for headers, but it uses a locked column as a row-header. In their bizarre implementatio, they use 2 JTables! One table is outside of the JScrollPane and the other is inside. Then when you scroll, you only scroll half the table. This is again very clever and will bring many a programmer to their knees when it comes time to debug how it all works.

So my obvious question is this: why hasn't anyone at Sun come up with the idea of building a better JScrollPane that just allows for a locked section? All you'd need to do is explicitly specify how much of the left or top to lock, and the rest would be automatic. For JTable, the locked amount would be the header's height. For JDNC, it would be the locked column's width.

I think it's time to write another email to JDNC to tell them how to do their jobs better!

A FilterList for sale

Here at O'Dell Engineering, we are continuously looking to find a way to recoup the costs of developing Glazed Lists. We've had two more ideas, both of which I think are decent:
  • Sell the MBean that publishes NetworkLists from within JBoss.
  • Sell a FilterList that works like TextFilterList, but with dates, field-specification and syntax hilighting

    These are just ideas. Would developers buy?