<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<!--
Copyright 1998-2001 Sun Microsystems, Inc.  All Rights Reserved.
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.

This code is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License version 2 only, as
published by the Free Software Foundation.  Sun designates this
particular file as subject to the "Classpath" exception as provided
by Sun in the LICENSE file that accompanied this code.

This code is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
version 2 for more details (a copy is included in the LICENSE file that
accompanied this code).

You should have received a copy of the GNU General Public License version
2 along with this work; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.

Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
CA 95054 USA or visit www.sun.com if you need additional information or
have any questions.
-->

</head>
<body bgcolor="white">

Provides user interface objects that combine two or more look and feels.
When a component asks
for its UI, this look and feel returns a 
multiplexing UI that handles all communications with both the 
default look and feel and one or more auxiliary look and feels. 
For example, if
a user combines an auxiliary audio look and feel 
with the Motif look and feel,
the <code>JButton.getUI</code> method
would return an instance of <code>MultiButtonUI</code>,
which would handle both a
<code>MotifButtonUI</code> and an <code>AudioButtonUI</code>. 
   
<p>

For more information, see
<a href="doc-files/multi_tsc.html" target="_top">Using
the Multiplexing Look and Feel.</a>

<p>
<strong>Note:</strong>
Most of the Swing API is <em>not</em> thread safe.
For details, see
<a
href="http://java.sun.com/docs/books/tutorial/uiswing/overview/threads.html"
target="_top">Threads and Swing</a>,
a section in
<em><a href="http://java.sun.com/docs/books/tutorial/"
target="_top">The Java Tutorial</a></em>.

@since 1.2
@serial exclude

</body>
</html>
