Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java Swing or Windows Forms for desktop application? [closed]

I am writing a fat client application that I would ideally like to be cross-platform, but may settle for Windows-only based on the following:

  • I am much stronger in C# than Java (though I have a few years Enterprise Java experience)
  • I haven't done much with either Windows Forms or Java Swing, just toy apps for each, though I'm more comfortable in Windows Forms than Swing
  • I am concerned about the performance of Swing applications (vs. Windows Forms), but I'm wondering if things have improved in the last couple years
  • I am completely open to developing in either platform...no MS or Java snobbery here. In fact, if you want to tell me to do it in Qt, wxWidgets, or something else, I'll listen!

If any of you switched from Windows Forms to Swing, what were the biggest hurdles?

Was the initial appeal of being cross-platform worth it in the end, or would a faster, less flexible Windows-only app have been better?

If you use Java Swing, which IDE do you prefer for drag/drop form layout?

like image 336
Noah Heldman Avatar asked Feb 19 '10 22:02

Noah Heldman


People also ask

Should I still use WinForms?

However, WinForms still has some role to play. If you want to develop an application without much of added modern functionality in WPF, then you can always choose to go for a platform which is developer-approved and time-tested.

Which is better JavaFX or swing?

In short, Swing and JavaFX are both GUI toolkits for Java programs. Swing is the old standard toolkit that features a bigger library of GUI elements and mature IDE support. JavaFX is the newer standard with a smaller library, more consistent updates, and consistent MVC support.

Is WinForms deprecated?

As we mentioned above, WinForms is still available but the status of “maintenance mode” likely means it has no long term future. As time passed by, especially in the last 5-10 years, new tools continued to mature and rise in popularity, and each one of them offered many powerful features.


2 Answers

I develop a complex low latency GUI in a bank using the Netbeans RCP platform. There are a lot of people using Netbeans. I also work with WinForm devs too.

The WinForm guys have some extremely rich and high performance/low footprint grids and widgets, especially commercial offerings such as Infragistics. Netbeans apps can have large resource footprints so it really needs to be something your customer is spending most of his computing resources on.

If it needs to be lean and interface rich or fast then Winforms is the way to go.

If you want a large library of APIs to build out and maintain a large complex GUI codebase and have the freedom of a completely portable tech stack I would choose Java everytime.

Having said that, Netbeans IDE is appalling! You would do well to visit Geertjan's blog if you go for it.

Check-in your code regularly to a branch when using the Matisse Graphics editor, it often goes nuts and trashes your layouts and fails to undo. The underlying RCP platform dependancy handling -if it gets you in a twist - can be challenging, but still better than OSGi!

Good luck, GUI development isn't as easy as people say!

like image 82
HaveAGuess Avatar answered Sep 30 '22 20:09

HaveAGuess


It looks like what you want to hear is: "Don't use swing keep with Winforms" so here it goes: Don't use swing. If you feel more comfortable with C# I think that's the only reason you need to go for it.

Swing apps are fast and the whole platform is good enough, but it definitely needs some time to learn it.

If you decide to give it a try, I'll suggest either Netbeas or IntellJ Idea, both have great GUI builders.

But really, just keep with C#

like image 27
OscarRyz Avatar answered Sep 30 '22 20:09

OscarRyz