Look And Feel. Swing has programmable look and feel. It
can be made to look like Motif, Mac etc.
Mac L&F
The Mac LAF is disabled except for Mac platforms. This is restriction is fairly
easy to defang. Just change this method:
public boolean isSupportedLookAndFeel()
{
return isNativeLookAndFeel();
}
to this one:
public boolean isSupportedLookAndFeel()
{
return true;
}
Selecting L&F Programmatically
Selecting L&F On the Command Line
You can also set the default look and feel on the command line:
Discovering Installed L&Fs
Decorating
You can further improve the look with: JFrame.setDefaultLookAndFeelDecorated(
true );
L&F Icons
You can use the get at the current L&F icons with code like this:
Icon closeIcon = UIManager.getIcon( "InternalFrame.closeIcon" );
Overriding
You can override colours in a given L&F with code like this:
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.
Sun’s Javadoc on the
LookAndFeel class : available:
Sun’s Javadoc on the
UIDefaults class : available:
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.
Gotchas
If you change the L&F dynamically, sometimes parts of your app won’t
change. You can find all frames and get them to refresh with code like this:
If you load your look and feel with a custom class loader, you must use this
undocumented hook so that Swing will use your loader to look for LAF classes:
UIManager.getDefaults().put( "ClassLoader", loader );
Nimbus LAF will be coming soon as part of the JDK, but it won’t be the
default. It will have hardware acceleration support.
Learning More
Sun’s Javadoc on the
UImanager class : available:
Books
 |
recommend book⇒Java Look and Feel Design Guidelines (2nd Edition) |
| | paperback |
|---|
| ISBN13: | 978-0-201-72588-9 |
|---|
| ISBN10: | 0-201-72588-6 |
|---|
| publisher: | Addison-Wesley |
| published: | 2001-03-19 |
| by: | Sun Microsystems |
| 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. |
|
 |
recommend book⇒Java Look and Feel Design Guidelines: Advanced Topics |
| | paperback |
|---|
| ISBN13: | 978-0-201-77582-2 |
|---|
| ISBN10: | 0-201-77582-4 |
|---|
| publisher: | Addison-Wesley |
| published: | 2001-12-27 |
| by: | Sun Microsystems |
| It is about how to design a good UI using Metal as an example. |
|
 |
recommend book⇒GUI Bloopers: Don’ts and Do’s for Software Developers and Web Designers |
| | paperback |
|---|
| ISBN13: | 978-1-55860-582-4 |
|---|
| ISBN10: | 1-55860-582-7 |
|---|
| publisher: | Morgan Kaufmann |
| published: | 2000-03-17 |
| by: | Jeff Johnson |
| Works by analysing 82 examples of bad design. |
|