--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/src/share/classes/javax/swing/plaf/synth/doc-files/componentProperties.html Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,1334 @@
+<!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. 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 <acceleratorDelimiter> 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>