I have 5 java systems for engineering whose UI were developed using Swing.
We started the development of these systems about 10 years ago and they have about 300K lines of code each. All these systems are in production environment.
One question that bother us about the UI of these systems is that they look old when compared with large available UIs of cell phones, tablets and web sites.
What do cell phones, tablets and web sites UI have in common ? Their look is based on the flat design concept.
So, we´re starting a research to find low cost alternatives to give to our systems a modern look oriented to flat design.
The first option we thought was to search a java L&F that is implemented based in the flat design concept. But We did not find one.
Does anyone knows if there is a java look and feel based, specifically, on the flat design concept ?
Best regards, Cláudio.
With the growth in Java framework, new changes were introduced to make the UI better and thus giving developer opportunity to enhance the look of a Java Swing Application. “Look” refers to the appearance of GUI widgets and “feel” refers to the way the widgets behave.
To programmatically specify a L&F, use the UIManager. setLookAndFeel() method with the fully qualified name of the appropriate subclass of LookAndFeel as its argument.
A quick way to make an old swing app look new is to change its Look and Feel.
The Nimbus look and feel looks OK
Check out the Oracle Tutorial on Look and Feel to learn how to change it or create your own.
All you have to do to change your look and feel is to add a few lines of code to your app.
Here's how to change to Nimbus:
try {
//recommended way to set Nimbus LaF because old versions of Java 6
//don't have it included
for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (Exception e) {
// If Nimbus is not available, you can set the GUI to another look and feel.
}
There isn't a pre-built one, and UIs in Swing are...well...one of the most painful experiences in development I've ever had. UI is so inherently platform-specific that cross-platform UIs are a pipe dream for any semi-complex UI. The only place it works is if your UI is basically a menu bar and a surface onto which you draw your own UI.
That said, I think long-term you're probably looking into custom UI and widget work on some level, and though that would be a lot of custom UI tool work, the tradeoff is that at least you would control the UI from that point forward, could keep it up-to-date as you go along, and you wouldn't have to worry as much about what Java decides is good UI design.
Some possible options, none of which are going to be without major pain:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With