For who know both Java Web and Desktop, is it more easy a Java Desktop programmer change to Web, or vice versa?
My opinion is completely subjective and based on no empirical evidence whatsoever but I would guess going from Desktop to Web is harder than the reverse. Couldn't even explain why.
I feel more proficient doing Swing development than Struts development. It is easier for me to change Swing than Struts.
If I am allowed, I like GWT.
Both desktop and web development have their own difficulties that will trip up someone who only knows one or the other.
Web development in general requires a broader knowledge of different technologies - HTML, JavaScript, CSS for the client; Servlets, JSPs, and whatever web framework the project's using; SQL, JDBC, and whatever ORM approach the project's using.
There are so many different Java web frameworks also - the basics are pretty much the same, but there's a really good chance you're going to be learning multiple frameworks as you work on different projects.
The difficulties on desktop projects are different. Rather than a dearth of frameworks, there's really none that are used that widely. (Swing and SWT are not really frameworks for building applications, they're just collections of widgets.) So you usually have to write more code - and that's code's really custom to the app/project/company. (and usually not that great - if only because there's only the small group of developers on your project working on it and using it (who are really more concerned with getting an app out) rather than the larger number of of developers developing and using popular web frameworks. )
Multi-threaded programming problems are a lot more common in desktop apps than web apps. Yes it's possible - but they're pretty well known problems and solutions, and again, web frameworks help again here.
I don't really think you can get an objective answer to this. Most of the people who have tried both have gone one way or another and base their opinion subjectively on their experiences.