I am writing a TotalCommander-like application. I have a separate component for file list, and a model for it. Model support listeners and issues a notification for events like
Check the uispec4j project. That's what I use to test my UIs.
www.uispec4j.org