Swing vs Native isn't the issue. The issue becomes users using old versions of your software and having to support them when bugs pop up, even though it may be fixed in the newer versions. It is hard to get everybody up to the latest version (even if the upgrades are free). It can eat up a lot of time doing support.
Whereas, when you make your app a web app, the changes you make are instant (for better or worse) and you don't have to worry about supporting various versions.
>It is hard to get everybody up to the latest version (even if the upgrades are free)
Automatic patching helps with this, although it requires a little more work designing a patching system (you might not want everyone hitting your servers at once), and it doesn't affect everyone (some people's computers are offline or require a proxy to be set up for patching.)
That is true, but even that has its caveats. Depending on who your target is, the user may be skeptical of a program "phoning home" on its own every so often.
Whereas, when you make your app a web app, the changes you make are instant (for better or worse) and you don't have to worry about supporting various versions.