Ignore Flex it's not programming IMO. If you can code Java I'm pretty certain that FLex will be a disappointment. Flex has a place, I don't really consider it a proper programming environment.
If you've mastered Java/Swing why not use it again? I would.
.NET can be portable - but IME it's not quite as easy to move stuff about as it is with Java (although it is better than it used to be).
Also, does it have to be desktop - I would seriously consider (a properly architected) rowser based desktop application.