Advertisement Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

The Swing vs. SWT vs. C# quandry

Sign in to follow this  


I've hit a stumbling block with my animation tool thats causing me much greif - I'm not sure whether to carry on reimplementing it in Swing, or whether to move to another GUI platform - in particular I'm thinking of either SWT (thats the toolkit behind Eclipse) or switch to C# and its GUI library.

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.
Sign in to follow this  


Recommended Comments

Interesting - from the looks of it I can write a series of Eclipse plugins and either use them in a standalone Eclipse framework or inside my regular Eclipse IDE? I'm not entirely sure how I'd intergrate with stuff like the resource view in Eclipse, but it sounds worth a look.

Book ordered. [grin]

Share this comment

Link to comment
I definitely recommend the Eclipse Rich Client Platform. It's totally awesome when you've gotten used to its complexity and the fact that there is support for mostly everything, you just have to know that 1. it exists and 2. how to use it.

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!