LAF : Java Glossary

LAF
LAF (Look And Feel). Swing has programmable look and feel. It can be made to look like Motif, Mac etc.
Mac L&F Decorating Gotchas
Selecting Programmatically Icons Learning More
Command Line Overriding Books
Discovering Installed L&Fs Persistence Links
Discovering Active L&Fs User Selected

Mac L&F

The Mac LAF is disabled except for Mac platforms. This is restriction is fairly easy to defang so that you can test your multi-platform code, without buying Mac. Just change this method:
public boolean isSupportedLookAndFeel()
   {
   return isNativeLookAndFeel();
   }
to 
public boolean isSupportedLookAndFeel()
   {
   return true;
   }
However, if you released code that did that, the Apple lawyers would be down your neck. Even if you used the third party QuaQua L&F that more closely mimics the Mac OS (Operating System) X UI (User Interface) than Sun’s L&F does, you would get in legal trouble if your app allowed QuaQua to run on anything but a Mac, except for development testing. If you use QuaQua, you must bundle the quaqua.jar with your application/Applet and ensure it is on the classpath.

Selecting L&F Programmatically

Note there are two techniques of setting a L&F. You can either do pass a new LookAndFeel object or the name of the LookAndFeel class as a String. The advantage of the first approach is the compiler will check that the L&F actually exists at compile time, preventing you from making a typo. The advantage of the second approach is you don’t need the L&F code present at compile time. Further you don’t bundle any L&F code in your jar.

Using the Nimbus look & feel that comes with JDK (Java Development Kit) 1.6.0_10+, is tricky since the class file that implements it might

Selecting L&F On the Command Line

You can also set the default look and 

Discovering Installed L&Fs

Discovering Active L&Fs

// discovering the current active Look and Feel
LookAndFeel laf = UIManager.getLookAndFeel();
String lafName = laf.getName();

Decorating

You can further improve the look with: JFrame.setDefaultLookAndFeelDecorated( true );

L&F Icons

// Get an icon that looks just like the one the L&F uses
// for closing internal frames.
Icon closeIcon = UIManager.getIcon( "InternalFrame.closeIcon" );

Overriding

// overriding a colour in the L&F
UIManager.put( "TabbedPane.selected", Color.RED );
The values you can feed to UIManager.put are undocumented, but you can learn about them by studying the source code in src.zip for javax.swing.basic. BasicLookAndFeel. java.

Another approach is to write your own Look & Feel that extends some other one, and just overrides a few font-defining methods or colour-defining methods. See this sample code for a writing a derived LAF.

Persistence

If you allow the user to select his preferred L&F, you can save it using the Java persistence mechanism. Then other applications and signed Applets can automatically use that choice as the default. This won’t work for unsigned Applets. For them, you might persist the choice on the server from which the Applet was loaded. You might also cook up something with JavaScript to pass the choice as an Applet parameter. It might also be possible to persist the L&F as a cookie, stored in the browser.

User Selected

Here is some code to allow the user to pick a L&F from a list of installed L&Fs on a menu. It persists the choice using the Java Persistence mechanism. Unfortunately, this requires the Applet to be signed. When the user selects a new L&F, the code propagates the new L&F to all the Frames and Windows. It also restores the decoration the enclosing JFrame, which usually gets lost when you change L&Fs.

Gotchas

Learning More

Oracle’s Javadoc on LookAndFeel class : available:
Oracle’s Javadoc on UIDefaults class : available:
Oracle’s Javadoc on UIManager class : available:
Oracle’s Technote Guide on Nimbus : available:

Books

book cover recommend book⇒Java Look and Feel Design Guidelines, second edition
by:Sun Microsystems 978-0-201-72588-9paperback
 (born: 1982 age: 29)
publisher:Addison-Wesley
published:2001-03-19
This book contains no code. It about how to design a good UI using Metal as an example. It contains Sun’s standards for how many pixels to use for various purposes.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒Java Look and Feel Design Guidelines: Advanced Topics
by:Sun Microsystems 978-0-201-77582-2paperback
 (born: 1982 age: 29)
publisher:Addison-Wesley
published:2001-12-27
It is about how to design a good UI using Metal as an example.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag download O’Reilly Safari Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
book cover recommend book⇒GUI Bloopers 2.0: Don’ts and Do’s for Software Developers and Web Designers
by:Jeff Johnson 978-0-12-370643-0paperback
publisher:Morgan Kaufmann B006L1ZUWUkindle
published:2007-10-12
Works by analysing 82 examples of bad design.
Australian flag abe books anz abe books.co.uk UK flag
German flag abe books.de amazon.co.uk UK flag
German flag amazon.de abe books.ca Canadian flag
Spanish flag iberlibro.com amazon.ca Canadian flag
Spanish flag amazon.es Chapters Indigo Canadian flag
French flag abe books.fr abe books.com American flag
French flag amazon.fr amazon.com American flag
Italian flag abe books.it Barnes & Noble American flag
Italian flag amazon.it Powells American flag
American flag download O’Reilly Safari download Sony e-books American flag
Kobo UN flag
Greyed out stores probably do not have the item in stock
Alloy L&F: commercial, 4 variants, glass effect
Canada Common Look and Feel
changing default fonts
decorated
EaSynth L&F
GUI
Infonode L&F: very simple
JavooToo Look & Feel Collection
JGoodies Looks L&F
JTattoo L&F: commercial, free for freeware authors, 10 variants
Lipstik L&F: bold high contrast
Liquid L&F: 3D oval clear bubbles
Microsoft Vista User Experience (L&F) guide
Napkin L&F: for presenting prototype ideas, pencil scribbling
NimROD L&F: bold colours, several variants
Office L&F: close copy of Microsoft look
Oyoaha L&F: with many pluggable monochrome themes
Pgs L&F: similar to Vista, free
Quaqua L&F: like native OS X
skin
SkinLF: over 20 L&Fs, supports GTK and KDE skins
Squareness L&F: minimalist, flat
Substance L&F: with component-level scaling, and skins on top of the L&F. Precise looking
Swing
Synthetica L&F: commercial, bland
Tiny L&F: minimalist, flat
Tonic L&F: like themes used in the Windows NT days
UI-Manager probe: shows values of UI-manager properties to help you understand how it works

CMP homejump to top You can get the freshest copy of this page from: or possibly from your local J: drive (Java virtual drive/mindprod.com website mirror)
http://mindprod.com/jgloss/laf.html J:\mindprod\jgloss\laf.html
logo
Please email your , letters to the editor, errors, omissions, typos, formatting errors, ambiguities, unclear wording, broken/redirected link reports, suggestions to improve this page or comments to Roedy Green : feedback email. If you want your message, your name or email kept confidential, not considered for public posting, please explicitly specify that. Unless you state otherwise, I will treat your message as a letter to the editor that I may or may not publish in the feedback section. After that, it will be too late to retract it. If you disagree with something I said, please quote it and cite the web page where you found it, tell me why you think it is wrong, and, if possible, provide some supporting evidence. Threatening to kill me or spouting obscenities has yet to persuade me to change my mind.
mindprod.com IP:[65.110.21.43]
view BlogYour face IP:[38.107.179.214]
You are visitor number 33,746.