I\'m a .NET developer dabbling in Java, and having a look at Swing. I would like to find out how to build Swing applications that are maintainable, and unit-testable