tags:

views:

215

answers:

7

hi, simple question : I need to write cross platform application (basically CRUD).

Is usage of Java Swing good idea? Or is it out-dated and you know better solution? I dont want to use like 5 languages for various stuff, one or two should be enough.

Thanx!

+7  A: 

Java and Swing will absolutely fit the requirement, and you will be able to make do with just the language runtime as downloaded from Oracle/Sun and nothing else. Java is one of few languages that comes with a complete and powerful GUI library of its own already included.

If I were to write a program like this these days, that's what I'd use.

Carl Smotricz
Glad to hear that, Carl
Mike
+1  A: 

Personally, I've always much preferred the Standard Widget Toolkit in terms of GUI toolkits myself.

Some argument and discussion.

Gavin Gilmour
Mike
I guess I've always historically associated Swing with the typical hideous "java look". This probably isn't fair to Swing nowadays, and I'm sure it's improved vastly, but the heavyweight of IBM behind SWT and it being "proven" with Eclipse always swung it (get it, swung it!) for me.
Gavin Gilmour
Mike
+1  A: 

Java/Swing will definitely do what you want. There are other solutions such as .NET/Mono, Various cross platform GUI libraries and C++.

If I had to decide today which to use it would be Java/Swing. Java because it is better supported, Swing because it's built in and JDBC simply tips the balance away from the others.

Gavin's right +1 for the SWT. If I didn't already know Swing I'd consider SWT before making a final decision. However I do know that Swing does the job well.

Richard Harrison
A: 

Since both good java answers are already given, It should be possible to do the UI in c# as well (as long as you don't use anything Windows specific). System.Windows.Forms type applications can run on Windows, linux and Mac OS X (with mono). It does require a bit more work to get the packaging done for each platform you want to support, but it is possible.

(If you already know java you're still better off using that though as the support is better across platforms and it doesn't require your users to install mono or .net)

Kris
+1  A: 

Swing is complete, maintained, well documented, and implemented in Java, ensuring cross-platform portability. Most relevantly, it's part of the Java language so no other downloads for the user to manage / bloat your program.

Although the default look and feel is ugly, Java 7 is to update the default look and feel of Swing to Nimbus, which looks very glossy.

If your question relates to using the language itself, I'd say "yes". Java is, like Swing, well documented and highly developed. It may seem verbose but if there's a problem, you can sure tackle it in Java.

Beau Martínez
did you mean nimbus? or really nautilus (dont know that one)
Mike
Nimubs... Code fail. I changed it pretty much after I answered once I delved into my codebase to find out what the classname was.
Beau Martínez
Mike
A: 

Java/Swing is fine. I would recommend getting a license for JFormsDesigner or one of the other UI layout tools that makes life much easier.

Also, check out SwingX which is people who work at Swing making custom controls and what not that look good and are very useful.

That's also a good place to look for best practices.

Milan Ramaiya
A: 

Maybe you can decouple the front end from the back by creating XML request/response streams and using web services. Then you can write the front end in whatever technology you want, as long as it uses an appropriate web client.

duffymo
yes I was thinking of "thin client" (using web), but I got off that idea :/however, not bad - definitelly :)
Mike
Certainly cross-platform. Your clients can be .NET, Java, Python - anything that can make an HTTP request to your service.
duffymo