<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<!--
Copyright 2003-2005 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">
<h3>Component Specific Properties</h3>
<p> The look, and to some degree the feel of Synth
can be customized by way of component specific properties.
These properties are accessed from <a
				    href="../SynthStyle.html">SynthStyle#get</a>. Refer to <a href="synthFileFormat.html#e.property">synth file format</a> for examples of how to specify these properties in a synth configuration file.</p>
    <p>
      This file specifies the expected class type each of the values
      are to take. The behavior of supplying the wrong type is
      unspecified: typically a <code>ClassCastException</code> is
      thrown, but it is implementation specific.
    </p>
<h4>ArrowButton</h4>
<p> ArrowButton is a special type of JButton that renders an arrow.
ArrowButton is typically not created directly, rather some of the
Components will create it       to render a button with an arrow. The
      components that make       use of ArrowButton       are:
JComboBox, JScrollBar and JSplitPane (for the buttons on the divider).
In       addition to the <a
 href="#buttonProperties">Button 	properties</a>, ArrowButton supports
the following propeties: </p>
<h5>ArrowButton Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
    <tr>
      <td>ArrowButton.size</td>
      <td>Integer</td>
      <td>16 	 </td>
      <td>Preferred size of the arrow button. </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JButton">JButton</a></h4>
<p> JButton paints text using the TEXT_FOREGROUND ColorType. In addition
to the <a href="#buttonProperties">Button 	properties</a>, JButton
supports the following property: </p>
<h5>JButton Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>Button.defaultButtonFollowsFocus</td>
      <td>Boolean</td>
      <td>true 	 </td>
      <td>Whether or not the 	    default JButton should change to the
button that is 	    receiving focus. </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JCheckBox">JCheckBox</a></h4>
<p> JCheckBox paints text using the TEXT_FOREGROUND ColorType. In
addition to the <a href="#buttonProperties">Button 	properties</a>,
JCheckBox supports the following property: </p>
<h5>JCheckBox Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>CheckBox.icon</td>
      <td>Icon</td>
      <td>null 	 </td>
      <td>Icon used to render the check. </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JComboBox">JComboBox</a></h4>
<p> JComboBox is a composite component that consists of the following
child Components: </p>
<table border="1">
  <thead><tr>
    <th>Name</th>
    <th>Type</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>ComboBox.arrowButton</td>
      <td>SynthArrowButton 	 </td>
      <td>Renders the drop down indicator. 	</td>
    </tr>
    <tr>
      <td>ComboBox.list</td>
      <td>JList 	 </td>
      <td>JList used to render the values. 	</td>
    </tr>
    <tr>
      <td>ComboBox.listRenderer</td>
      <td>Component 	 </td>
      <td>The renderer used for the JComboBox's JList. 	</td>
    </tr>
    <tr>
      <td>ComboBox.popup</td>
      <td>JPopupMenu 	 </td>
      <td>JPopupMenu used to show the ComboBox.list of the JComboBox. 	</td>
    </tr>
    <tr>
      <td>ComboBox.renderer</td>
      <td>Component 	 </td>
      <td>The renderer used for the JComboBox. This is ONLY set if 	
the renderer is a UIResource. 	</td>
    </tr>
    <tr>
      <td>ComboBox.scrollPane</td>
      <td>JScrollPane 	 </td>
      <td>JScrollPane containing the JList. 	</td>
    </tr>
    <tr>
      <td>ComboBox.textField</td>
      <td>JTextField 	 </td>
      <td>The editor. </td>
    </tr>
  </tbody>
</table>
<p> </p>
<h5>JComboBox Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
    <tr>
      <td>ComboBox.showPopupOnNavigation</td>
      <td>Boolean</td>
      <td>false 	 </td>
      <td>Whether or not the JPopupMenu should appear when 	 navigating
with the keyboard. </td>
    </tr>
  </tbody>
</table>
<br>
<h4>JFileChooser</h4>
<h5>JFileChooser Specific Properties</h5>
<table cellpadding="2" cellspacing="2" border="1"
 style="width: 100%; text-align: left;">
  <tbody>
    <tr>
      <th style="vertical-align: top; text-align: center;">Property</th>
      <th style="vertical-align: top; text-align: center;">Expected Type<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Default Value<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Description</th>
    </tr>
    <tr>
      <td style="vertical-align: top;">FileChooser.cancelIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon displayed on cancel button
of the file chooser.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">FileChooser.okIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon displayed on the ok button
of the file chooser.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">FileView.directoryIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used for directories.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">FileView.fileIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used for files.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">FileView.computerIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used for directories that
            represent the computer.  Not all platforms will make use
            of this icon.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">FileView.hardDriveIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used to represent the root
            of a hard drive.  For example, on Windows this would be
            used when viewing the C drive.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">FileView.floppyDriveIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used to represent a floppy
          disk.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">FileChooser.newFolderIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used by the button that creates a new
          folder.
      </td>
    </tr>          
    <tr>
      <td style="vertical-align: top;">FileChooser.upFolderIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used by the button that navigates to the
          parent folder.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">FileChooser.homeFolderIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used by the button that navigates to the
          current user's home directory.
      </td>
    </tr>          
    <tr>
      <td style="vertical-align: top;">FileChooser.detailsViewIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used by the button that toggles the
          detailed files list view.
      </td>
    </tr>             
    <tr>
      <td style="vertical-align: top;">FileChooser.listViewIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used by the button that toggles the
          regular files list view, showing only an icon and the name of each
          file and directory.
      </td>
    </tr>          
    <tr>
      <td style="vertical-align: top;">FileChooser.viewMenuIcon<br>
      </td>
      <td style="vertical-align: top;">Icon<br>
      </td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon used by the button that shows popup menu
          for selection of a view mode.
      </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JInternalFrame"></a>JInternalFrame</h4>
<h5>JInternalFrame Specific Properties</h5>
<table cellpadding="2" cellspacing="2" border="1"
 style="text-align: left; width: 100%;">
  <tbody>
    <tr>
      <th style="vertical-align: top; text-align: center;">Property<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Expected Type<br>
      </th>
      <th style="vertical-align: top; text-align: center;">DefaultValue<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Description<br>
      </th>
    </tr>
    <tr>
      <td style="vertical-align: top;">InternalFrame.icon<br>
      </td>
      <td style="vertical-align: top;">Icon</td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon drawn representing the
system<br>
icon of the internal frame.&nbsp; If pressed<br>
the system menu will be shown.<br>
      </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JInternalFrameTitlePane"></a>JInternalFrameTitlePane</h4>
<p>JInternalFrameTitlePane is the control bar located at the top of the
internal frame similar to that found in a frame.<br>
</p>
<h5>JInternalFrameTitlePane Specific Properties</h5>
<table cellpadding="2" cellspacing="2" border="1"
 style="text-align: left; width: 100%;">
  <tbody>
    <tr>
      <th style="vertical-align: top; text-align: center;">Property<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Expected Type<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Default Value<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Description<br>
      </th>
    </tr>
    <tr>
      <td style="vertical-align: top;">InternalFrameTitlePane.maximizeIcon<br>
      </td>
      <td style="vertical-align: top;">Icon</td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon drawn to indicate the
ability to maximize the internal frame.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">InternalFrameTitlePane.minimizeIcon<br>
      </td>
      <td style="vertical-align: top;">Icon</td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon drawn to indicate the
ability to restore the internal frame back to its previous state.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">InternalFrameTitlePane.iconifyIcon<br>
      </td>
      <td style="vertical-align: top;">Icon</td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon drawn to indicate the
ability to minimize the internal frame.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">InternalFrameTitlePane.closeIcon<br>
      </td>
      <td style="vertical-align: top;">Icon</td>
      <td style="vertical-align: top;">null<br>
      </td>
      <td style="vertical-align: top;">Icon drawn to indicate the
abililty to close the internal frame.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">InternalFrameTitlePane.titleSpacing<br>
      </td>
      <td style="vertical-align: top;">Integer</td>
      <td style="vertical-align: top;">2</td>
      <td style="vertical-align: top;">Space between the
	    buttons on the title pane and the title.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">InternalFrameTitlePane.buttonSpacing<br>
      </td>
      <td style="vertical-align: top;">Integer</td>
      <td style="vertical-align: top;">2</td>
      <td style="vertical-align: top;">Space between the buttons on
	    the title pane.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">InternalFrameTitlePane.maxFrameIconSize<br>
      </td>
      <td style="vertical-align: top;">Dimension</td>
      <td style="vertical-align: top;">16x16</td>
      <td style="vertical-align: top;">Maximum size of the frame
	    icon that will be rendered on the title pane.  If the icon
	    is bigger than this size, it will be scaled down.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">InternalFrameTitlePane.titleAlignment<br>
      </td>
      <td style="vertical-align: top;">leading|trailing|center</td>
      <td style="vertical-align: top;">leading</td>
      <td style="vertical-align: top;">Alignment for the title.
	    With a left to right component orientation leading is left
	    and trailing right.  With a right to left component
	    orientation leading is right and trailing left.
      </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JList">JList</a></h4>
<p> JList's sets the name of the renderer to List.renderer.       JList
supports the following properties: </p>
<h5>JList Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
    <tr>
      <td>List.rendererUseListColors</td>
      <td>Boolean</td>
      <td>true 	 </td>
      <td>If true the renderers state is not updated, and the 	    text
colors come from JList's getSelectionBackground and 	
getSelectionForeground methods. If false, the renderer's 	    state is
updated and the colors will instead come from the 	    Style. 	</td>
    </tr>
    <tr>
      <td>List.rendererUseUIBorder</td>
      <td>Boolean</td>
      <td>true 	 </td>
      <td>If true setBorder on the renderer will succeed 	 regardless
of the border passed in, otherwise setBorder on 	    the renderer will
only succeed if it is a Synth Border. 	</td>
    </tr>
    <tr>
      <td>List.cellHeight</td>
      <td>Integer</td>
      <td>-1 	 </td>
      <td>Cell height of the JList. Is this is -1, 	 <code>setFixedCellHeight</code>
is not invoked. </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="menuProperties">Menu Properties</a></h4>
<p> The Menu classes (JCheckBoxMenuItem, JMenu, JMenuItem, and
JRadioButtonMenuItem) all support the same set of properties and behave
similarly.       Each component consists of two Regions: the region
specific to the       component and Region.MENU_ITEM_ACCELERATOR.
MENU_ITEM_ACCELERATOR is used for painting the accelerator. Both Regions
paint text using the TEXT_FOREGROUND ColorType. The following set of
properties are supported: </p>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>prefix.acceleratorDelimiter</td>
      <td>String</td>
      <td>+ 	 </td>
      <td>String separator between the description of the 	 modifiers
and the key, for example <code>Ctrl 	 &lt;acceleratorDelimiter&gt; X</code>.
	</td>
    </tr>
    <tr>
      <td>prefix.arrowIcon</td>
      <td>Icon</td>
      <td>null 	 </td>
      <td>Icon drawn to the right of the text (or left when the 	
ComponentOrientation is right to left) of the text. This 	    is
typically only defined for JMenu. 	</td>
    </tr>
    <tr>
      <td>prefix.checkIcon</td>
      <td>Icon</td>
      <td>null 	 </td>
      <td>Icon drawn to the left of the text (or right when the 	
ComponentOrientation is right to left) of the text. This 	    is
typically only defined for JCheckBoxMenuItem and 	 JRadioButtonMenuItem
to provide the check or radio button. 	</td>
    </tr>
    <tr>
      <td>prefix.margin</td>
      <td>Insets</td>
      <td>Empty Insets (0, 0, 0, 0) 	 </td>
      <td>Margin for the JMenuItem. Refer to the javadoc of
	    <code>javax.swing.AbstractButton#setMargin(java.awt.Insets)</code> for details
of how the margin is used. 	</td>
    </tr>
    <tr>
      <td>prefix.textIconGap</td>
      <td>Integer</td>
      <td>4 	 </td>
      <td>Padding between the icon and text. Refer to the javadoc for 
<code>javax.swing.AbstractButton#setIconTextGap(int)</code> for details of how
this is used. </td>
    </tr>
  </tbody>
</table>
<p> <code>Prefix</code> is one of: CheckBoxMenuItem, Menu, MenuItem, or
RadioButtonMenuItem. </p>
<p> JMenu also supports the following properties: </p>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>Menu.delay</td>
      <td>Integer</td>
      <td>200 	 </td>
      <td>Sets the delay before the menu appears. 	</td>
    </tr>
    <tr>
      <td>Menu.shortcutKeys</td>
      <td>int[]</td>
      <td>KeyEvent.ALT_MASK 	 </td>
      <td>Array of the KeyEvent modifiers to use for shortcut keys. </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JOptionPane">JOptionPane</a></h4>
<p> JOptionPane is a composite component and may consist of numerous child
components, they are: OptionPane.button, OptionPane.label,
OptionPane.comboBox, OptionPane.scrollPane, OptionPane.list,
OptionPane.textField, OptionPane.iconLabel. </p>
<h5>JOptionPane Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>OptionPane.buttonAreaBorder</td>
      <td>Border 	 </td>
      <td>null 	 </td>
      <td>Border around the button area. 	</td>
    </tr>
    <tr>
      <td>OptionPane.buttonClickThreshhold</td>
      <td>Integer 	 </td>
      <td>0 	 </td>
      <td>Passed to the created buttons setMultiClickThreshhold. 	</td>
    </tr>
    <tr>
      <td>OptionPane.buttonOrientation</td>
      <td>Integer 	 </td>
      <td>SwingConstants.CENTER 	 </td>
      <td>How the buttons should be layed out, one of 	
SwingConstants.LEFT, SwingConstants.RIGHT or 	    SwingConstants.CENTER
(this will be flipped when in a 	    right to left locale). 	</td>
    </tr>
    <tr>
      <td>OptionPane.buttonPadding</td>
      <td>Integer 	 </td>
      <td>6 	 </td>
      <td>Amount of space between buttons. 	</td>
    </tr>
    <tr>
      <td>OptionPane.cancelIcon</td>
      <td>Icon 	 </td>
      <td>null 	 </td>
      <td>Icon for the cancel button. 	</td>
    </tr>
    <tr>
      <td>OptionPane.errorIcon</td>
      <td>Icon 	 </td>
      <td>null 	 </td>
      <td>Icon used for ERROR_MESSAGE. 	</td>
    </tr>
    <tr>
      <td>OptionPane.informationIcon</td>
      <td>Icon 	 </td>
      <td>null 	 </td>
      <td>Icon used for INFORMATION_MESSAGE. 	</td>
    </tr>
    <tr>
      <td>OptionPane.isYesLast</td>
      <td>Boolean 	 </td>
      <td>false 	 </td>
      <td>If true the 'yes' button leads other buttons, 	    otherwise
it follows the other buttons. 	</td>
    </tr>
    <tr>
      <td>OptionPane.questionIcon</td>
      <td>Icon 	 </td>
      <td>null 	 </td>
      <td>Icon used for error QUESTION_MESSAGE. 	</td>
    </tr>
    <tr>
      <td>OptionPane.minimumSize</td>
      <td>Dimension 	 </td>
      <td>262x90</td>
      <td>Minimum size for the JOptionPane. 	</td>
    </tr>
    <tr>
      <td>OptionPane.noIcon</td>
      <td>Icon 	 </td>
      <td>null 	 </td>
      <td>Icon for the no button. 	</td>
    </tr>
    <tr>
      <td>OptionPane.okIcon</td>
      <td>Icon 	 </td>
      <td>null 	 </td>
      <td>Icon for the ok button. 	</td>
    </tr>
    <tr>
      <td>OptionPane.sameSizeButtons</td>
      <td>Boolean 	 </td>
      <td>true 	 </td>
      <td>Whether or not all the buttons should be the same size. 	</td>
    </tr>
    <tr>
      <td>OptionPane.separatorPadding</td>
      <td>Integer 	 </td>
      <td>6</td>
      <td>Amount of padding between the message area and 	 separator. 	</td>
    </tr>
    <tr>
      <td>OptionPane.yesIcon</td>
      <td>Icon 	 </td>
      <td>null 	 </td>
      <td>Icon for the yes button. 	</td>
    </tr>
    <tr>
      <td>OptionPane.warningIcon</td>
      <td>Icon 	 </td>
      <td>null 	 </td>
      <td>Icon used for error WARNING_MESSAGE 	</td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JProgressBar"></a>JProgressBar<br>
</h4>
<h5>JProgressBar Specific Properties<br>
</h5>
<table cellpadding="2" cellspacing="2" border="1"
 style="text-align: left; width: 100%;">
  <tbody>
    <tr>
      <th style="vertical-align: top; text-align: center;">Property</th>
      <th style="vertical-align: top; text-align: center;">Expected Type<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Default Value<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Description</th>
    </tr>
    <tr>
      <td style="vertical-align: top;">ProgressBar.repaintInterval<br>
      </td>
      <td style="vertical-align: top;">Integer<br>
      </td>
      <td style="vertical-align: top;">50<br>
      </td>
      <td style="vertical-align: top;">Number of milliseconds between
repaints for indeterminate progress bars.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">ProgressBar.cycleTime<br>
      </td>
      <td style="vertical-align: top;">Integer<br>
      </td>
      <td style="vertical-align: top;">3000<br>
      </td>
      <td style="vertical-align: top;">Number of milliseconds used to
determine how far to move<br>
the bouncing box per frame when the progress bar is indeterminate.<br>
      </td>
    </tr>
  </tbody>
</table>
<h4><a name="JRadioButton">JRadioButton</a></h4>
<p> JRadioButton paints text using the TEXT_FOREGROUND ColorType. In
addition to the <a href="#buttonProperties">Button 	properties</a>,
JRadioButton supports the following property: </p>
<h5>JRadioButton Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>RadioButton.icon</td>
      <td>Icon</td>
      <td>null 	 </td>
      <td>Icon used to render the radio indicator. </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JScrollBar">JScrollBar</a></h4>
<p> JScrollBar is a composite component that consists of the following
child Components: </p>
<table border="1">
  <thead><tr>
    <th>Name</th>
    <th>Type</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>ScrollBar.button</td>
      <td>SynthArrowButton 	 </td>
      <td>Identifies the increment/decrement buttons. </td>
    </tr>
  </tbody>
</table>
<p> </p>
<h5>JScrollBar Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>ScrollBar.allowsAbsolutePositioning</td>
      <td>Boolean 	 </td>
      <td>false</td>
      <td>If true, middle mouse click in the track will 	    set the
position of the track to where the mouse is. 	</td>
    </tr>
    <tr>
      <td>ScrollBar.maximumThumbSize</td>
      <td>Dimension</td>
      <td>4096x4096 	 </td>
      <td>Maximum thumb size. 	</td>
    </tr>
    <tr>
      <td>ScrollBar.minimumThumbSize</td>
      <td>Dimension</td>
      <td>Derived from ScrollBar.thumbHeight</td>
      <td>The minimum thumb size.  If this is not specified the
	    minimum thumb size is ScrollBar.thumbHeight plus the insets
	    of the scrollbar along the opposite axis of the scrollbar
	    and 7 along the other axis.  For example, if you have not
	    specified Insets for a scrollbar, and the orientation of
	    the scrollbar is vertical, than the minimum thumb
	    size width is ScrollBar.thumbHeight with a height of 7.</td>
    </tr>
    <tr>
      <td>ScrollBar.squareButtons</td>
      <td>Boolean 	 </td>
      <td>false</td>
      <td>If true, the width and height of the scrollbar 	    buttons
will be made equal. 	</td>
    </tr>
    <tr>
      <td>ScrollBar.thumbHeight</td>
      <td>Integer</td>
      <td>14 	 </td>
      <td>The preferred height, when the orientation of the
	    scrollbar is horizontal, or preferred width when the
	    orientation of the scrollbar is vertical.</td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="Separator">Separators</a></h4>
<p> All of the separator classes, JSeparator, JPopupMenu.Separator and
JToolBar.Separator use the same property: </p>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>Separator.thickness</td>
      <td>Integer</td>
      <td>2 	 </td>
      <td>Preferred width, for vertically aligned separators, or 	
preferred height for horizontally aligned separators. The 	 resulting
preferred size will include the Insets. </td>
    </tr>
  </tbody>
</table>
<p> JToolBar.Separator also supports the following property: </p>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>ToolBar.separatorSize</td>
      <td>Dimension</td>
      <td>null 	 </td>
      <td>The value of this is passed to the <code>javax.swing.JToolBar$Separator#setSeparatorSize(java.awt.Dimension)</code>
method. If unspecified <code>setSeparatorSize</code> is 	    not
invoked. </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JScrollPane">JScrollPane</a></h4>
<p> 
      JScrollPane is unique in that it provides a method for setting
      the Border around the JViewport with JViewport throwing an
      IllegalArgumentException from <code>setBorder</code>. To
      accomodate this a special border is installed on the
      <code>JScrollPane</code> that uses the 
      insets from the key
      <code>ScrollPane.viewportBorderInsets</code>. The
      <code>SynthPainter</code> method
      <code>paintViewportBorder</code> is called to paint the
      <code>Viewport</code>s border.
 </p>
<h5>JScrollPane Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
    <tr>
      <td>ScrollPane.viewportBorderInsets</td>
      <td>Insets</td>
      <td>null 	 </td>
      <td>Insets for the viewport Border. 	</td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JSplitPane">JSplitPane</a></h4>
<p> JSplitPane is a composite component that will contain a divider and
potentially two buttons, if setOneTouchExpandable(true) has been
invoked. The two buttons will be named:
SplitPaneDivider.leftOneTouchButton and
SplitPaneDivider.rightOneTouchButton. </p>
<h5>JSplitPane Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
    <tr>
      <td>SplitPane.centerOneTouchButtons</td>
      <td>Boolean</td>
      <td>true 	 </td>
      <td>If true, the one touch buttons are centered on the divider. 	</td>
    </tr>
    <tr>
      <td>SplitPane.oneTouchButtonOffset</td>
      <td>Integer</td>
      <td>2 	 </td>
      <td>Distance between the one touch buttons. 	</td>
    </tr>
    <tr>
      <td>SplitPane.oneTouchButtonSize</td>
      <td>Integer</td>
      <td>6 	 </td>
      <td>Size to make the one touch buttons. 	</td>
    </tr>
    <tr>
      <td>SplitPane.oneTouchExpandable</td>
      <td>Boolean</td>
      <td>null 	 </td>
      <td>If non null, the value of this is passed to 	
setOneTouchExpandable. 	</td>
    </tr>
    <tr>
      <td>SplitPane.size</td>
      <td>Integer</td>
      <td>6 	 </td>
      <td>Size of the divider </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JSlider"></a>JSlider</h4>
<h5>JSlider Specific Properties</h5>
<table cellpadding="2" cellspacing="2" border="1"
 style="text-align: left; width: 100%;">
  <tbody>
    <tr>
      <th style="vertical-align: top; text-align: center;">Property<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Expected Type<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Default Value<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Description<br>
      </th>
    </tr>
    <tr>
      <td style="vertical-align: top;">Slider.thumbWidth<br>
      </td>
      <td style="vertical-align: top;">Integer<br>
      </td>
      <td style="vertical-align: top;">30<br>
      </td>
      <td style="vertical-align: top;">Width of the slider thumb<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">Slider.thumbHeight<br>
      </td>
      <td style="vertical-align: top;">Integer<br>
      </td>
      <td style="vertical-align: top;">14<br>
      </td>
      <td style="vertical-align: top;">Height of the slider thumb<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">Slider.trackBorder<br>
      </td>
      <td style="vertical-align: top;">Integer<br>
      </td>
      <td style="vertical-align: top;">1<br>
      </td>
      <td style="vertical-align: top;">Width of the track border<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">Slider.paintValue<br>
      </td>
      <td style="vertical-align: top;">Boolean<br>
      </td>
      <td style="vertical-align: top;">true<br>
      </td>
      <td style="vertical-align: top;">Whether or not to paint the
current value<br>
of the slider.<br>
      </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JTabbedPane"></a>JTabbedPane</h4>
<h5>JTabbedPane Specific Properties</h5>
<table cellpadding="2" cellspacing="2" border="1"
 style="text-align: left; width: 100%;">
  <tbody>
    <tr>
      <th style="vertical-align: top; text-align: center;">Property</th>
      <th style="vertical-align: top; text-align: center;">Expected Type<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Default Value<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Description</th>
    </tr>
    <tr>
      <td style="vertical-align: top;">TabbedPane.tabRunOverlay<br>
      </td>
      <td style="vertical-align: top;">Integer<br>
      </td>
      <td style="vertical-align: top;">0<br>
      </td>
      <td style="vertical-align: top;">Number of pixels to overlap
	    tabs when there is more than one row.  <br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">TabbedPane.textIconGap<br>
      </td>
      <td style="vertical-align: top;">Integer<br>
      </td>
      <td style="vertical-align: top;">0<br>
      </td>
      <td style="vertical-align: top;">Padding added between the icon
	    and text on a tab.  If there is no text or icon this value
	    is not used.
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">TabbedPane.selectedTabPadInsets<br>
      </td>
      <td style="vertical-align: top;">Insets<br>
      </td>
      <td style="vertical-align: top;">Empty Insets (0, 0, 0, 0)<br>
      </td>
      <td style="vertical-align: top;">Extra insets added to the
selected tab.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">TabbedPane.selectionFollowsFocus<br>
      </td>
      <td style="vertical-align: top;">Boolean<br>
      </td>
      <td style="vertical-align: top;">true<br>
      </td>
      <td style="vertical-align: top;">If true the selection of the
	    tabbed pane changes as the user navigates the tabs with a
	    mouse.<br>
      </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JTable">JTable</a></h4>
<p> JTable sets the name of the renderer to Table.cellRenderer.      
JTable supports the following properties: </p>
<h5>JTable Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
    <tr>
      <td>Table.gridColor</td>
      <td>Color</td>
      <td>null 	 </td>
      <td>Color used for the grid. If null the foreground from 	    the
style is used. 	</td>
    </tr>
    <tr>
      <td>Table.rendererUseTableColors</td>
      <td>Boolean</td>
      <td>true 	 </td>
      <td>If true the renderers state is not updated, and the 	    text
colors come from JTable's getSelectionBackground and 	   
getSelectionForeground methods. If false, the renderer's 	    state is
updated and the colors will instead come from the 	    Style. 	</td>
    </tr>
    <tr>
      <td>Table.rendererUseUIBorder</td>
      <td>Boolean</td>
      <td>true 	 </td>
      <td>If true setBorder on the renderer will succeed 	   
regardless of the border passed in, otherwise setBorder on 	    the
renderer will only succeed if it is a Synth Border. 	</td>
    </tr>
    <tr>
      <td>Table.rowHeight</td>
      <td>Integer</td>
      <td>-1 	 </td>
      <td>If not -1 setRowHeight is invoked on the JTable. </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="JTree">JTree</a></h4>
<p> JTree sets the name of the renderer to Tree.renderer, the name of
the editor is Tree.cellEditor.</p>
<h5>JTree Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
    <tr>
      <td>Tree.collapsedIcon</td>
      <td>Icon</td>
      <td>null 	 </td>
      <td>Icon to use when a node is collapsed. 	</td>
    </tr>
    <tr>
      <td>Tree.drawHorizontalLines</td>
      <td>Boolean</td>
      <td>true 	 </td>
      <td>If true nodes have a horizontal connecting them to the 	
leading edge of their parent. 	</td>
    </tr>
    <tr>
      <td>Tree.drawVerticalLines</td>
      <td>Boolean</td>
      <td>true 	 </td>
      <td>If true a vertical line is drawn down from expanded nodes. 	</td>
    </tr>
    <tr>
      <td>Tree.expandedIcon</td>
      <td>Icon</td>
      <td>null 	 </td>
      <td>Icon to use when a node has been expanded. 	</td>
    </tr>
    <tr>
      <td>Tree.leftChildIndent</td>
      <td>Integer</td>
      <td>0 	 </td>
      <td>This plus Tree.rightChildIndent account for the 	    total
space, along the y axis, to offset nodes from their 	    parent. 	</td>
    </tr>
    <tr>
      <td>Tree.rightChildIndent</td>
      <td>Integer</td>
      <td>0 	 </td>
      <td>This plus Tree.leftChildIndent account for the 	    total
space, along the y axis, to offset nodes from their 	    parent. 	</td>
    </tr>
    <tr>
      <td>Tree.rowHeight</td>
      <td>Integer</td>
      <td>-1 	 </td>
      <td>Row height for the Tree.</td>
    </tr>
    <tr>
      <td>Tree.scrollsHorizontallyAndVertically</td>
      <td>Boolean</td>
      <td>false 	 </td>
      <td>If false and scrolling needs to happen to accomodate 	 cells
it will only happen along the vertical axis, if 	    true, scrolling
may happen along both the horizontal and 	    vertical axis. 	</td>
    </tr>
    <tr>
      <td>Tree.scrollsOnExpand</td>
      <td>Boolean</td>
      <td>true 	 </td>
      <td>Whether or not the JTree should scroll when a node is 	
expanded. </td>
    </tr>
    <tr>
      <td>Tree.linesStyle</td>
      <td>String</td>
      <td>      </td>
      <td>The styles of the lines in the tree. Synth supports solid lines
(empty value) and dashed lines ("dashed" value). It is possible to add new
styles by creating a new <a href="../SynthGraphicsUtils.html">SynthGraphicsUtils</a>
and <a href="synthFileFormat.html#e.graphicsUtils">binding it</a> to the tree.</td>
    </tr>
  </tbody>
</table>
<h4><a name="JToggleButton">JToggleButton</a></h4>
<p> JToggleButton paints text using the TEXT_FOREGROUND ColorType. In
addition to the <a href="#buttonProperties">Button 	properties</a>,
JToggleButton supports the following property: </p>
<h5>JToggleButton Specific Properties</h5>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>ToggleButton.icon</td>
      <td>Icon</td>
      <td>null 	 </td>
      <td>Icon used to render the radio indicator. </td>
    </tr>
  </tbody>
</table>
<br>
<h4><a name="buttonProperties">Button Properties</a></h4>
<p> Each of the Button classes (JButton, JCheckBox, JRadioButton,
JToggleButton and SynthArrowButton) support a similar set of properties.
These properties are: </p>
<table border="1">
  <thead><tr>
    <th>Property</th>
    <th>Expected Type</th>
    <th>Default Value</th>
    <th>Description </th>
  </tr>
  </thead> <tbody>
	<tr>
      <td>prefix.contentAreaFilled</td>
      <td>Integer</td>
      <td>true 	 </td>
      <td>Refer to the javadoc of <code>javax.swing.AbstractButton#contentAreaFilled(boolean)</code> 	    for details
of how this is used. It is up to the Painter 	    to properly honor this
property. 	</td>
    </tr>
    <tr>
      <td>prefix.iconTextGap</td>
      <td>Integer</td>
      <td>If 	    unspecified, JButton.setIconTextGap is not invoked. 	</td>
      <td>Padding between the icon and text. Refer to the javadoc of <code>javax.swing.AbstractButton#setIconTextGap(int)</code> 	    for details of how
this is used. 	</td>
    </tr>
    <tr>
      <td>prefix.margin</td>
      <td>Insets</td>
      <td>Empty Insets (0, 0, 0, 0) 	 </td>
      <td>Margin for the JButton. Refer to the javadoc of <code>javax.swing.AbstractButton#setMargin(java.awt.Insets)</code> 	    for details
of how the margin is used. 	</td>
    </tr>
    <tr>
      <td>prefix.textShiftOffset</td>
      <td>Integer</td>
      <td>0 	 </td>
      <td>Amount to shift the text and icon, along the x and y 	 axis,
from where it would normally be layed out. This is 	    only used when
the button is in a pressed state and does 	    not have a pressed icon. </td>
    </tr>
  </tbody>
</table>
<p> <code>Prefix</code> is one of: Button, CheckBox, RadioButton or
JToggleButton.<br>
</p>
<h4><a name="textProperties"></a>Text Properties<br>
</h4>
<table cellpadding="2" cellspacing="2" border="1"
 style="text-align: left; width: 100%;">
  <tbody>
    <tr>
      <th style="vertical-align: top; text-align: center;">Property</th>
      <th style="vertical-align: top; text-align: center;">Expected Type<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Default Value<br>
      </th>
      <th style="vertical-align: top; text-align: center;">Description<br>
      </th>
    </tr>
    <tr>
      <td style="vertical-align: top;">prefix.caretForeground<br>
      </td>
      <td style="vertical-align: top;">Color<br>
      </td>
      <td style="vertical-align: top;">#000000</td>
      <td style="vertical-align: top;">Color of the caret.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">prefix.margin<br>
      </td>
      <td style="vertical-align: top;">Insets</td>
      <td style="vertical-align: top;">Empty Insets (0, 0, 0, 0),<br>
EditorPane and TextPane (3, 3, 3, 3)<br>
      </td>
      <td style="vertical-align: top;">Margins of the text component.<br>
      </td>
    </tr>
    <tr>
      <td style="vertical-align: top;">prefix.caretBlinkRate<br>
      </td>
      <td style="vertical-align: top;">Integer<br>
      </td>
      <td style="vertical-align: top;">500<br>
      </td>
      <td style="vertical-align: top;">Number of milliseconds defining
the blink rate fo the caret.<br>
      </td>
    </tr>
  </tbody>
</table>
<p><code>Prefix</code> is one of: EditorPane, FormattedTextField,
PasswordField, TextArea, TextField or TextPane.<br>
</p>
</body>
</html>
