I attended "Swing Tips and Tricks: A Best Practices Approach to Swing Applications" talk today. While the talk covered well-known ground (or what I hope should be well-known ground) for Swing developers, what struck me most was that we (developers) are too often ostriches. Putting our heads in the sand, we move forward tackling problems as they come, forgetting that more often than not, these problems are not new. And forgetting more often then not someone else has already solved it.
This is not a critism of the presentation, but the two example problems for JTables are as I see it rather common: highlighting particular table cell with predicates and displaying the rollover row in a different color. It must be said that some companies do not use FOSS and other only allow specific OSS licenses. So, it is necessary to give developers the tools to solve the problems as they may be constrained by outside factors. However, assuming that no outside factors exist, why not look for the existing solution. For my part, I know that SwingX solves all of those issues out-of-the-box. It is my goto tool for solving these common Swing problems.
So back to my ostrich comment: how do we do better? Both specifically in SwingX to help users with problems that we've already tackled, but also (and perhaps more importantly) generally handle these issues? Why is it that we developers are constantly reinventing the wheel instead of reusing someone else's? How do we change that pattern?