The problem is that I've realised that I'm going to need at least a few more sub-windows in my app. Currently (glance down for a pic, it hasn't changed much) I've got three sub windows and a bunch of buttons. I'm going to need (at least) a list of name bindings, a table for skeleton metadata, and a table for keyframe metadata. Now you don't really need all of them up at the same time, so technically I could just put some options to show/hide each one as needed. But really what I want is proper dockable windows for each one (like Visual Studio or Eclipse) so the user can rearrange, resize and stack them how they please.
For Swing, theres a whole bunch of 'docking' libraries, howevery they all seem to suck in one way or another. Most are commercial, so that puts them right out. The odd one or two are GPL so they're out too. The only one that wasn't commercial and didn't suck was FlexDock, but although that seems good on the surface it seems to have a few bugs and is a dead project.
So I figure that gives me two options (other than the obvious, "just live with it"): port to SWT, or port to C#.
After having used SWT in Eclipse for many years now, I'm reasonably sure of its stability, bug-free-ness and general quality (and when it comes to the docking implementation, it's very good). However I've not used SWT before, and I have no ideas what features of Swing I'm using now that I'd have to give up (at the moment I'm quite partial to the Action stuff, and I've been eyeballing the undo support too). I have no idea if SWT is as high level as Swing either, or whether I'd spend much longer trying to add new components compared to what I have at the moment. I also worry that alot of the fancy-ness that I like in Eclipse is actually not part of SWT itself, but extras added by Eclipse.
Porting to C# is much more radical, and I'm not sure whether it's a serious proposition or not. I'd have to port all the code, rather than just re-implement the GUI (and I've already shown that re-implementing the GUI is quite quick, but the whole code base is much bigger). My main reason for liking the C# option is that my app becomes a proper native app rather than the obviously alien presence that Swing gives. I'd also have to give up using Eclipse...
I'm leaning towards a SWT port at the moment. I think I'm going to have to get a good SWT book (anyone recommend any?) and try some smaller test apps to see how much I like it or not.