rf_circ
rf_circ

Reputation: 1915

Need Overview of Modern Java for Desktop Applications

I've been asked to write a cross-platform desktop app in Java. Targeted platforms are Windows/OSX/Linux.

I learned Java 1.1 1997, and did a few small utilities and applets using the the AWT library. I've done nothing with it since.

What modern technologies and libraries should I use for this project? I'm just looking for a list so I can follow up with Google. There is a lot of java stuff out there, and it is difficult for an outsider to make sense of it all.

Also, do you have any broad tips on distribution, installation and auto-updating?

To give you an idea of my background, I've been writing complex desktop apps since 1988 in C, C++, Visual Basic, Delphi and C#. Any tips you give me would really help me get a running start on this project.

Thank you very much for your help.

EDIT: I will be doing a lot of custom controls, if that makes a difference.

Upvotes: 4

Views: 1532

Answers (9)

OscarRyz
OscarRyz

Reputation: 199264

Swing is already a good technology to work with. But it is a little problematic to understand the basic concepts at the beginning.

You can read the Swing Architecture which will give you a very good understanding of what going on behind the scenes.

The swing tutorial is a must read.

And finally, once you have a good understanding of the framework, you'll be able to get around this book:


(source: filthyrichclients.org)

From the description page:

Filthy rich clients are applications that are so graphically rich that they ooze cool. They suck the user in from the outset and hang onto them with a death grip of excitement. They make the user tell their friends about the applications.

In short, they make the user actually enjoy their application experience. When was the last time you enjoyed using a software application?

The problem with most Swing apps, is they stay in the bare minimum and don't add eye candy to their interfaces, making it boring to use.

These book has a number of topics you can learn to improve the look of your swing app.

There is a NetBeans plugin of the demos

For instance this article describes how to apply some of these concepts and create a busy pane like this:

alt text
(source: javalobby.org)

Upvotes: 1

Stefan De Boey
Stefan De Boey

Reputation: 2394

Spring Rich Client project is a complete Swing-based framework for creating Spring-based desktop applications, similar to Eclipse and NetBeans. i use it because it dramatically reduces the amount of boiler-plate code needed.

Upvotes: 0

Chris Dail
Chris Dail

Reputation: 26049

I would strongly recommend looking at Griffon. It is a Java Swing based library that brings the plugin models and convention over configuration model from Grails to the Swing world. It does mean you would be coding in Groovy and not Java but that should not be a problem.

For a new application this would be a good choice. Groovy and Griffon run on the Java Virtual Machine and can be deployed cross-platform.

Upvotes: 0

Tom Neyland
Tom Neyland

Reputation: 6968

Java has changed in several of important (design affecting) ways, you should make sure that you are aware of the new language features that have been introduced since 1997, such as generics.

Most changes/additions to the Java language should feel familiar since C# has many of the same features.

If you find yourself longing for C# lambda, check out LambdaJ

Other than that most important things have been mentioned, so Ill give my personal opinion on them:

  1. I would say use Swing over SWT

  2. I would suggest that you look at both Eclipse and Netbeans to see which environment feels more comfortable to develop in. But I think you may find more similarities between Visual Studio C# and Netbeans, than between VSC# and Eclipse

  3. If you need advanced GUI components check out SwingX first.

Additionally, other than Stack Overflow, a great resource is Java2s, Java2s - Swing

Upvotes: 2

Michael Borgwardt
Michael Borgwardt

Reputation: 346387

Also, do you have any broad tips on distribution, installation and auto-updating?

Java Web Start is a good solution for this.

Upvotes: 0

Rahel Lüthy
Rahel Lüthy

Reputation: 7007

Basic Decision: Swing vs. SWT vs. JavaFX (I'd go with this, possibly combined with Swing).

As for the "soft" other aspects (in addition to what was already mentioned):

Upvotes: 4

willcodejavaforfood
willcodejavaforfood

Reputation: 44073

Apart from Swing, SWT and the NetBeans platform there are a few other words you should google :)

  1. JIDE (components)
  2. SwingX (components)
  3. Substance (Look n Feel)
  4. FEST (automated testing framework for swing)
  5. JXLayer (decorating components)

Upvotes: 0

True Soft
True Soft

Reputation: 8796

SWT is a library you could use. And Eclipse for IDE.

Upvotes: 1

finnw
finnw

Reputation: 48639

I would start with Swing and SWT, because the first decision you will need to make will be to pick one of them, and it probably won't be feasible to switch later.

There are a lot of other general-purpose libraries that may be useful, e.g. Guava and Apache Commons Collections, but those can be mixed and matched so that decision is not so critical.

Upvotes: 4

Related Questions