使用系統 LF
Swing 支援相當多的原生 L&F。
你可以隨時輕鬆安裝一個而無需呼叫特定的 L&F 類:
public class SystemLookAndFeel
{
public static void main ( final String[] args )
{
// L&F installation should be performed within EDT (Event Dispatch Thread)
// This is important to avoid any UI issues, exceptions or even deadlocks
SwingUtilities.invokeLater ( new Runnable ()
{
@Override
public void run ()
{
// Process of L&F installation might throw multiple exceptions
// It is always up to you whether to handle or ignore them
// In most common cases you would never encounter any of those
try
{
// Installing native L&F as a current application L&F
// We do not know what exactly L&F class is, it is provided by the UIManager
UIManager.setLookAndFeel ( UIManager.getSystemLookAndFeelClassName () );
}
catch ( final ClassNotFoundException e )
{
// L&F class was not found
e.printStackTrace ();
}
catch ( final InstantiationException e )
{
// Exception while instantiating L&F class
e.printStackTrace ();
}
catch ( final IllegalAccessException e )
{
// Class or initializer isn't accessible
e.printStackTrace ();
}
catch ( final UnsupportedLookAndFeelException e )
{
// L&F is not supported on the current system
e.printStackTrace ();
}
// Now we can create some natively-looking UI
// This is just a small sample frame with a single button on it
final JFrame frame = new JFrame ();
final JPanel content = new JPanel ( new FlowLayout () );
content.setBorder ( BorderFactory.createEmptyBorder ( 50, 50, 50, 50 ) );
content.add ( new JButton ( "Native-looking button" ) );
frame.setContentPane ( content );
frame.setDefaultCloseOperation ( WindowConstants.EXIT_ON_CLOSE );
frame.pack ();
frame.setLocationRelativeTo ( null );
frame.setVisible ( true );
}
} );
}
}
這些是本地 L&Fs JDK 支援(OS - > L&F):
OS |
L&F 名稱 | L&F 班 |
---|---|---|
Solaris,Linux 和 GTK + | GTK + | com.sun.java.swing.plaf.gtk.GTKLookAndFeel |
其他 Solaris,Linux | 主題 | com.sun.java.swing.plaf.motif.MotifLookAndFeel |
經典 Windows | 視窗 | com.sun.java.swing.plaf.windows.WindowsLookAndFeel |
Windows XP | Windows XP | com.sun.java.swing.plaf.windows.WindowsLookAndFeel |
Windows Vista | Windows Vista | com.sun.java.swing.plaf.windows.WindowsLookAndFeel |
蘋果 | 蘋果 | com.apple.laf.AquaLookAndFeel * |
IBM UNIX | IBM | javax.swing.plaf.synth.SynthLookAndFeel * |
HP UX | 生命值 | javax.swing.plaf.synth.SynthLookAndFeel * |
*這些 L&F 由系統供應商提供,實際的 L&F 類名稱可能會有所不同