I don't think that is what this forum is for.
This forum is for helping with programming issues. You don't have a program that you have an issue with to discuss.
When I hear a question like that, I think that it is like asking what's the difference between C# and VB.Net.
It may not be that analogous, but it kind of strikes me that way.
Swing is a popular tool for building Java GUI applications.
JSF is now a popular tool for building Java GUI applications.
JSF has been around over ten years, but has been growing in popularity at a greater rate for developers compared to Swing lately, so is currently overtaking Swing in popularity.
How similar one is to work with versus the other, I can't say as I haven't developed with either one. I know our "shop" worked with Swing primarily for its Java applications when a project was working with Java, but of course the project started back in the late 2000's so Swing was in full "swing" at the time, taking over AWT turf.
Now, it appears, JSF is the tool that is poised to take over the swing set of the Java playground.
I'm sure both will be big players for the foreseeable future though.
I guess if you see the question on a career interview, the pat answer may be "JSF application cannot operate when a network is not present, Swing applications can operate on local data when the network is not there."
But again, I don't believe this type of question is meant for this forum. It also seems like something that could be answered by doing searches and reading, rather than trying to get a customized answer by querying a forum.