blob: fb35cf0ebb8d394b41b68dddacd593352ec3b4f4 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2<html>
3<head>
4<!--
5Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved.
6DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7
8This code is free software; you can redistribute it and/or modify it
9under the terms of the GNU General Public License version 2 only, as
10published by the Free Software Foundation. Sun designates this
11particular file as subject to the "Classpath" exception as provided
12by Sun in the LICENSE file that accompanied this code.
13
14This code is distributed in the hope that it will be useful, but WITHOUT
15ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17version 2 for more details (a copy is included in the LICENSE file that
18accompanied this code).
19
20You should have received a copy of the GNU General Public License version
212 along with this work; if not, write to the Free Software Foundation,
22Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
23
24Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
25CA 95054 USA or visit www.sun.com if you need additional information or
26have any questions.
27
28-->
29</head>
30<body bgcolor="white">
31<h3>Component Specific Properties</h3>
32<p> The look, and to some degree the feel of Synth
33can be customized by way of component specific properties.
34These properties are accessed from <a
35 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>
36 <p>
37 This file specifies the expected class type each of the values
38 are to take. The behavior of supplying the wrong type is
39 unspecified: typically a <code>ClassCastException</code> is
40 thrown, but it is implementation specific.
41 </p>
42<h4>ArrowButton</h4>
43<p> ArrowButton is a special type of JButton that renders an arrow.
44ArrowButton is typically not created directly, rather some of the
45Components will create it to render a button with an arrow. The
46 components that make use of ArrowButton are:
47JComboBox, JScrollBar and JSplitPane (for the buttons on the divider).
48In addition to the <a
49 href="#buttonProperties">Button properties</a>, ArrowButton supports
50the following propeties: </p>
51<h5>ArrowButton Specific Properties</h5>
52<table border="1">
53 <thead><tr>
54 <th>Property</th>
55 <th>Expected Type</th>
56 <th>Default Value</th>
57 <th>Description </th>
58 </tr>
59 </thead> <tbody>
60 <tr>
61 <td>ArrowButton.size</td>
62 <td>Integer</td>
63 <td>16 </td>
64 <td>Preferred size of the arrow button. </td>
65 </tr>
66 </tbody>
67</table>
68<br>
69<h4><a name="JButton">JButton</a></h4>
70<p> JButton paints text using the TEXT_FOREGROUND ColorType. In addition
71to the <a href="#buttonProperties">Button properties</a>, JButton
72supports the following property: </p>
73<h5>JButton Specific Properties</h5>
74<table border="1">
75 <thead><tr>
76 <th>Property</th>
77 <th>Expected Type</th>
78 <th>Default Value</th>
79 <th>Description </th>
80 </tr>
81 </thead> <tbody>
82 <tr>
83 <td>Button.defaultButtonFollowsFocus</td>
84 <td>Boolean</td>
85 <td>true </td>
86 <td>Whether or not the default JButton should change to the
87button that is receiving focus. </td>
88 </tr>
89 </tbody>
90</table>
91<br>
92<h4><a name="JCheckBox">JCheckBox</a></h4>
93<p> JCheckBox paints text using the TEXT_FOREGROUND ColorType. In
94addition to the <a href="#buttonProperties">Button properties</a>,
95JCheckBox supports the following property: </p>
96<h5>JCheckBox Specific Properties</h5>
97<table border="1">
98 <thead><tr>
99 <th>Property</th>
100 <th>Expected Type</th>
101 <th>Default Value</th>
102 <th>Description </th>
103 </tr>
104 </thead> <tbody>
105 <tr>
106 <td>CheckBox.icon</td>
107 <td>Icon</td>
108 <td>null </td>
109 <td>Icon used to render the check. </td>
110 </tr>
111 </tbody>
112</table>
113<br>
114<h4><a name="JComboBox">JComboBox</a></h4>
115<p> JComboBox is a composite component that consists of the following
116child Components: </p>
117<table border="1">
118 <thead><tr>
119 <th>Name</th>
120 <th>Type</th>
121 <th>Description </th>
122 </tr>
123 </thead> <tbody>
124 <tr>
125 <td>ComboBox.arrowButton</td>
126 <td>SynthArrowButton </td>
127 <td>Renders the drop down indicator. </td>
128 </tr>
129 <tr>
130 <td>ComboBox.list</td>
131 <td>JList </td>
132 <td>JList used to render the values. </td>
133 </tr>
134 <tr>
135 <td>ComboBox.listRenderer</td>
136 <td>Component </td>
137 <td>The renderer used for the JComboBox's JList. </td>
138 </tr>
139 <tr>
140 <td>ComboBox.popup</td>
141 <td>JPopupMenu </td>
142 <td>JPopupMenu used to show the ComboBox.list of the JComboBox. </td>
143 </tr>
144 <tr>
145 <td>ComboBox.renderer</td>
146 <td>Component </td>
147 <td>The renderer used for the JComboBox. This is ONLY set if
148the renderer is a UIResource. </td>
149 </tr>
150 <tr>
151 <td>ComboBox.scrollPane</td>
152 <td>JScrollPane </td>
153 <td>JScrollPane containing the JList. </td>
154 </tr>
155 <tr>
156 <td>ComboBox.textField</td>
157 <td>JTextField </td>
158 <td>The editor. </td>
159 </tr>
160 </tbody>
161</table>
162<p> </p>
163<h5>JComboBox Specific Properties</h5>
164<table border="1">
165 <thead><tr>
166 <th>Property</th>
167 <th>Expected Type</th>
168 <th>Default Value</th>
169 <th>Description </th>
170 </tr>
171 </thead> <tbody>
172 <tr>
173 <td>ComboBox.showPopupOnNavigation</td>
174 <td>Boolean</td>
175 <td>false </td>
176 <td>Whether or not the JPopupMenu should appear when navigating
177with the keyboard. </td>
178 </tr>
179 </tbody>
180</table>
181<br>
182<h4>JFileChooser</h4>
183<h5>JFileChooser Specific Properties</h5>
184<table cellpadding="2" cellspacing="2" border="1"
185 style="width: 100%; text-align: left;">
186 <tbody>
187 <tr>
188 <th style="vertical-align: top; text-align: center;">Property</th>
189 <th style="vertical-align: top; text-align: center;">Expected Type<br>
190 </th>
191 <th style="vertical-align: top; text-align: center;">Default Value<br>
192 </th>
193 <th style="vertical-align: top; text-align: center;">Description</th>
194 </tr>
195 <tr>
196 <td style="vertical-align: top;">FileChooser.cancelIcon<br>
197 </td>
198 <td style="vertical-align: top;">Icon<br>
199 </td>
200 <td style="vertical-align: top;">null<br>
201 </td>
202 <td style="vertical-align: top;">Icon displayed on cancel button
203of the file chooser.<br>
204 </td>
205 </tr>
206 <tr>
207 <td style="vertical-align: top;">FileChooser.okIcon<br>
208 </td>
209 <td style="vertical-align: top;">Icon<br>
210 </td>
211 <td style="vertical-align: top;">null<br>
212 </td>
213 <td style="vertical-align: top;">Icon displayed on the ok button
214of the file chooser.<br>
215 </td>
216 </tr>
217 <tr>
218 <td style="vertical-align: top;">FileView.directoryIcon<br>
219 </td>
220 <td style="vertical-align: top;">Icon<br>
221 </td>
222 <td style="vertical-align: top;">null<br>
223 </td>
224 <td style="vertical-align: top;">Icon used for directories.
225 </td>
226 </tr>
227 <tr>
228 <td style="vertical-align: top;">FileView.fileIcon<br>
229 </td>
230 <td style="vertical-align: top;">Icon<br>
231 </td>
232 <td style="vertical-align: top;">null<br>
233 </td>
234 <td style="vertical-align: top;">Icon used for files.
235 </td>
236 </tr>
237 <tr>
238 <td style="vertical-align: top;">FileView.computerIcon<br>
239 </td>
240 <td style="vertical-align: top;">Icon<br>
241 </td>
242 <td style="vertical-align: top;">null<br>
243 </td>
244 <td style="vertical-align: top;">Icon used for directories that
245 represent the computer. Not all platforms will make use
246 of this icon.
247 </td>
248 </tr>
249 <tr>
250 <td style="vertical-align: top;">FileView.hardDriveIcon<br>
251 </td>
252 <td style="vertical-align: top;">Icon<br>
253 </td>
254 <td style="vertical-align: top;">null<br>
255 </td>
256 <td style="vertical-align: top;">Icon used to represent the root
257 of a hard drive. For example, on Windows this would be
258 used when viewing the C drive.
259 </td>
260 </tr>
261 <tr>
262 <td style="vertical-align: top;">FileView.floppyDriveIcon<br>
263 </td>
264 <td style="vertical-align: top;">Icon<br>
265 </td>
266 <td style="vertical-align: top;">null<br>
267 </td>
268 <td style="vertical-align: top;">Icon used to represent a floppy
269 disk.
270 </td>
271 </tr>
272 <tr>
273 <td style="vertical-align: top;">FileChooser.newFolderIcon<br>
274 </td>
275 <td style="vertical-align: top;">Icon<br>
276 </td>
277 <td style="vertical-align: top;">null<br>
278 </td>
279 <td style="vertical-align: top;">Icon used by the button that creates a new
280 folder.
281 </td>
282 </tr>
283 <tr>
284 <td style="vertical-align: top;">FileChooser.upFolderIcon<br>
285 </td>
286 <td style="vertical-align: top;">Icon<br>
287 </td>
288 <td style="vertical-align: top;">null<br>
289 </td>
290 <td style="vertical-align: top;">Icon used by the button that navigates to the
291 parent folder.
292 </td>
293 </tr>
294 <tr>
295 <td style="vertical-align: top;">FileChooser.homeFolderIcon<br>
296 </td>
297 <td style="vertical-align: top;">Icon<br>
298 </td>
299 <td style="vertical-align: top;">null<br>
300 </td>
301 <td style="vertical-align: top;">Icon used by the button that navigates to the
302 current user's home directory.
303 </td>
304 </tr>
305 <tr>
306 <td style="vertical-align: top;">FileChooser.detailsViewIcon<br>
307 </td>
308 <td style="vertical-align: top;">Icon<br>
309 </td>
310 <td style="vertical-align: top;">null<br>
311 </td>
312 <td style="vertical-align: top;">Icon used by the button that toggles the
313 detailed files list view.
314 </td>
315 </tr>
316 <tr>
317 <td style="vertical-align: top;">FileChooser.listViewIcon<br>
318 </td>
319 <td style="vertical-align: top;">Icon<br>
320 </td>
321 <td style="vertical-align: top;">null<br>
322 </td>
323 <td style="vertical-align: top;">Icon used by the button that toggles the
324 regular files list view, showing only an icon and the name of each
325 file and directory.
326 </td>
327 </tr>
328 <tr>
329 <td style="vertical-align: top;">FileChooser.viewMenuIcon<br>
330 </td>
331 <td style="vertical-align: top;">Icon<br>
332 </td>
333 <td style="vertical-align: top;">null<br>
334 </td>
335 <td style="vertical-align: top;">Icon used by the button that shows popup menu
336 for selection of a view mode.
337 </td>
338 </tr>
339 </tbody>
340</table>
341<br>
342<h4><a name="JInternalFrame"></a>JInternalFrame</h4>
343<h5>JInternalFrame Specific Properties</h5>
344<table cellpadding="2" cellspacing="2" border="1"
345 style="text-align: left; width: 100%;">
346 <tbody>
347 <tr>
348 <th style="vertical-align: top; text-align: center;">Property<br>
349 </th>
350 <th style="vertical-align: top; text-align: center;">Expected Type<br>
351 </th>
352 <th style="vertical-align: top; text-align: center;">DefaultValue<br>
353 </th>
354 <th style="vertical-align: top; text-align: center;">Description<br>
355 </th>
356 </tr>
357 <tr>
358 <td style="vertical-align: top;">InternalFrame.icon<br>
359 </td>
360 <td style="vertical-align: top;">Icon</td>
361 <td style="vertical-align: top;">null<br>
362 </td>
363 <td style="vertical-align: top;">Icon drawn representing the
364system<br>
365icon of the internal frame.&nbsp; If pressed<br>
366the system menu will be shown.<br>
367 </td>
368 </tr>
369 </tbody>
370</table>
371<br>
372<h4><a name="JInternalFrameTitlePane"></a>JInternalFrameTitlePane</h4>
373<p>JInternalFrameTitlePane is the control bar located at the top of the
374internal frame similar to that found in a frame.<br>
375</p>
376<h5>JInternalFrameTitlePane Specific Properties</h5>
377<table cellpadding="2" cellspacing="2" border="1"
378 style="text-align: left; width: 100%;">
379 <tbody>
380 <tr>
381 <th style="vertical-align: top; text-align: center;">Property<br>
382 </th>
383 <th style="vertical-align: top; text-align: center;">Expected Type<br>
384 </th>
385 <th style="vertical-align: top; text-align: center;">Default Value<br>
386 </th>
387 <th style="vertical-align: top; text-align: center;">Description<br>
388 </th>
389 </tr>
390 <tr>
391 <td style="vertical-align: top;">InternalFrameTitlePane.maximizeIcon<br>
392 </td>
393 <td style="vertical-align: top;">Icon</td>
394 <td style="vertical-align: top;">null<br>
395 </td>
396 <td style="vertical-align: top;">Icon drawn to indicate the
397ability to maximize the internal frame.<br>
398 </td>
399 </tr>
400 <tr>
401 <td style="vertical-align: top;">InternalFrameTitlePane.minimizeIcon<br>
402 </td>
403 <td style="vertical-align: top;">Icon</td>
404 <td style="vertical-align: top;">null<br>
405 </td>
406 <td style="vertical-align: top;">Icon drawn to indicate the
407ability to restore the internal frame back to its previous state.<br>
408 </td>
409 </tr>
410 <tr>
411 <td style="vertical-align: top;">InternalFrameTitlePane.iconifyIcon<br>
412 </td>
413 <td style="vertical-align: top;">Icon</td>
414 <td style="vertical-align: top;">null<br>
415 </td>
416 <td style="vertical-align: top;">Icon drawn to indicate the
417ability to minimize the internal frame.<br>
418 </td>
419 </tr>
420 <tr>
421 <td style="vertical-align: top;">InternalFrameTitlePane.closeIcon<br>
422 </td>
423 <td style="vertical-align: top;">Icon</td>
424 <td style="vertical-align: top;">null<br>
425 </td>
426 <td style="vertical-align: top;">Icon drawn to indicate the
427abililty to close the internal frame.
428 </td>
429 </tr>
430 <tr>
431 <td style="vertical-align: top;">InternalFrameTitlePane.titleSpacing<br>
432 </td>
433 <td style="vertical-align: top;">Integer</td>
434 <td style="vertical-align: top;">2</td>
435 <td style="vertical-align: top;">Space between the
436 buttons on the title pane and the title.
437 </td>
438 </tr>
439 <tr>
440 <td style="vertical-align: top;">InternalFrameTitlePane.buttonSpacing<br>
441 </td>
442 <td style="vertical-align: top;">Integer</td>
443 <td style="vertical-align: top;">2</td>
444 <td style="vertical-align: top;">Space between the buttons on
445 the title pane.
446 </td>
447 </tr>
448 <tr>
449 <td style="vertical-align: top;">InternalFrameTitlePane.maxFrameIconSize<br>
450 </td>
451 <td style="vertical-align: top;">Dimension</td>
452 <td style="vertical-align: top;">16x16</td>
453 <td style="vertical-align: top;">Maximum size of the frame
454 icon that will be rendered on the title pane. If the icon
455 is bigger than this size, it will be scaled down.
456 </td>
457 </tr>
458 <tr>
459 <td style="vertical-align: top;">InternalFrameTitlePane.titleAlignment<br>
460 </td>
461 <td style="vertical-align: top;">leading|trailing|center</td>
462 <td style="vertical-align: top;">leading</td>
463 <td style="vertical-align: top;">Alignment for the title.
464 With a left to right component orientation leading is left
465 and trailing right. With a right to left component
466 orientation leading is right and trailing left.
467 </td>
468 </tr>
469 </tbody>
470</table>
471<br>
472<h4><a name="JList">JList</a></h4>
473<p> JList's sets the name of the renderer to List.renderer. JList
474supports the following properties: </p>
475<h5>JList Specific Properties</h5>
476<table border="1">
477 <thead><tr>
478 <th>Property</th>
479 <th>Expected Type</th>
480 <th>Default Value</th>
481 <th>Description </th>
482 </tr>
483 </thead> <tbody>
484 <tr>
485 <td>List.rendererUseListColors</td>
486 <td>Boolean</td>
487 <td>true </td>
488 <td>If true the renderers state is not updated, and the text
489colors come from JList's getSelectionBackground and
490getSelectionForeground methods. If false, the renderer's state is
491updated and the colors will instead come from the Style. </td>
492 </tr>
493 <tr>
494 <td>List.rendererUseUIBorder</td>
495 <td>Boolean</td>
496 <td>true </td>
497 <td>If true setBorder on the renderer will succeed regardless
498of the border passed in, otherwise setBorder on the renderer will
499only succeed if it is a Synth Border. </td>
500 </tr>
501 <tr>
502 <td>List.cellHeight</td>
503 <td>Integer</td>
504 <td>-1 </td>
505 <td>Cell height of the JList. Is this is -1, <code>setFixedCellHeight</code>
506is not invoked. </td>
507 </tr>
508 </tbody>
509</table>
510<br>
511<h4><a name="menuProperties">Menu Properties</a></h4>
512<p> The Menu classes (JCheckBoxMenuItem, JMenu, JMenuItem, and
513JRadioButtonMenuItem) all support the same set of properties and behave
514similarly. Each component consists of two Regions: the region
515specific to the component and Region.MENU_ITEM_ACCELERATOR.
516MENU_ITEM_ACCELERATOR is used for painting the accelerator. Both Regions
517paint text using the TEXT_FOREGROUND ColorType. The following set of
518properties are supported: </p>
519<table border="1">
520 <thead><tr>
521 <th>Property</th>
522 <th>Expected Type</th>
523 <th>Default Value</th>
524 <th>Description </th>
525 </tr>
526 </thead> <tbody>
527 <tr>
528 <td>prefix.acceleratorDelimiter</td>
529 <td>String</td>
530 <td>+ </td>
531 <td>String separator between the description of the modifiers
532and the key, for example <code>Ctrl &lt;acceleratorDelimiter&gt; X</code>.
533 </td>
534 </tr>
535 <tr>
536 <td>prefix.arrowIcon</td>
537 <td>Icon</td>
538 <td>null </td>
539 <td>Icon drawn to the right of the text (or left when the
540ComponentOrientation is right to left) of the text. This is
541typically only defined for JMenu. </td>
542 </tr>
543 <tr>
544 <td>prefix.checkIcon</td>
545 <td>Icon</td>
546 <td>null </td>
547 <td>Icon drawn to the left of the text (or right when the
548ComponentOrientation is right to left) of the text. This is
549typically only defined for JCheckBoxMenuItem and JRadioButtonMenuItem
550to provide the check or radio button. </td>
551 </tr>
552 <tr>
553 <td>prefix.margin</td>
554 <td>Insets</td>
555 <td>Empty Insets (0, 0, 0, 0) </td>
556 <td>Margin for the JMenuItem. Refer to the javadoc of
557 <code>javax.swing.AbstractButton#setMargin(java.awt.Insets)</code> for details
558of how the margin is used. </td>
559 </tr>
560 <tr>
561 <td>prefix.textIconGap</td>
562 <td>Integer</td>
563 <td>4 </td>
564 <td>Padding between the icon and text. Refer to the javadoc for
565<code>javax.swing.AbstractButton#setIconTextGap(int)</code> for details of how
566this is used. </td>
567 </tr>
568 </tbody>
569</table>
570<p> <code>Prefix</code> is one of: CheckBoxMenuItem, Menu, MenuItem, or
571RadioButtonMenuItem. </p>
572<p> JMenu also supports the following properties: </p>
573<table border="1">
574 <thead><tr>
575 <th>Property</th>
576 <th>Expected Type</th>
577 <th>Default Value</th>
578 <th>Description </th>
579 </tr>
580 </thead> <tbody>
581 <tr>
582 <td>Menu.delay</td>
583 <td>Integer</td>
584 <td>200 </td>
585 <td>Sets the delay before the menu appears. </td>
586 </tr>
587 <tr>
588 <td>Menu.shortcutKeys</td>
589 <td>int[]</td>
590 <td>KeyEvent.ALT_MASK </td>
591 <td>Array of the KeyEvent modifiers to use for shortcut keys. </td>
592 </tr>
593 </tbody>
594</table>
595<br>
596<h4><a name="JOptionPane">JOptionPane</a></h4>
597<p> JOptionPane is a composite component and may consist of numerous child
598components, they are: OptionPane.button, OptionPane.label,
599OptionPane.comboBox, OptionPane.scrollPane, OptionPane.list,
600OptionPane.textField, OptionPane.iconLabel. </p>
601<h5>JOptionPane Specific Properties</h5>
602<table border="1">
603 <thead><tr>
604 <th>Property</th>
605 <th>Expected Type</th>
606 <th>Default Value</th>
607 <th>Description </th>
608 </tr>
609 </thead> <tbody>
610 <tr>
611 <td>OptionPane.buttonAreaBorder</td>
612 <td>Border </td>
613 <td>null </td>
614 <td>Border around the button area. </td>
615 </tr>
616 <tr>
617 <td>OptionPane.buttonClickThreshhold</td>
618 <td>Integer </td>
619 <td>0 </td>
620 <td>Passed to the created buttons setMultiClickThreshhold. </td>
621 </tr>
622 <tr>
623 <td>OptionPane.buttonOrientation</td>
624 <td>Integer </td>
625 <td>SwingConstants.CENTER </td>
626 <td>How the buttons should be layed out, one of
627SwingConstants.LEFT, SwingConstants.RIGHT or SwingConstants.CENTER
628(this will be flipped when in a right to left locale). </td>
629 </tr>
630 <tr>
631 <td>OptionPane.buttonPadding</td>
632 <td>Integer </td>
633 <td>6 </td>
634 <td>Amount of space between buttons. </td>
635 </tr>
636 <tr>
637 <td>OptionPane.cancelIcon</td>
638 <td>Icon </td>
639 <td>null </td>
640 <td>Icon for the cancel button. </td>
641 </tr>
642 <tr>
643 <td>OptionPane.errorIcon</td>
644 <td>Icon </td>
645 <td>null </td>
646 <td>Icon used for ERROR_MESSAGE. </td>
647 </tr>
648 <tr>
649 <td>OptionPane.informationIcon</td>
650 <td>Icon </td>
651 <td>null </td>
652 <td>Icon used for INFORMATION_MESSAGE. </td>
653 </tr>
654 <tr>
655 <td>OptionPane.isYesLast</td>
656 <td>Boolean </td>
657 <td>false </td>
658 <td>If true the 'yes' button leads other buttons, otherwise
659it follows the other buttons. </td>
660 </tr>
661 <tr>
662 <td>OptionPane.questionIcon</td>
663 <td>Icon </td>
664 <td>null </td>
665 <td>Icon used for error QUESTION_MESSAGE. </td>
666 </tr>
667 <tr>
668 <td>OptionPane.minimumSize</td>
669 <td>Dimension </td>
670 <td>262x90</td>
671 <td>Minimum size for the JOptionPane. </td>
672 </tr>
673 <tr>
674 <td>OptionPane.noIcon</td>
675 <td>Icon </td>
676 <td>null </td>
677 <td>Icon for the no button. </td>
678 </tr>
679 <tr>
680 <td>OptionPane.okIcon</td>
681 <td>Icon </td>
682 <td>null </td>
683 <td>Icon for the ok button. </td>
684 </tr>
685 <tr>
686 <td>OptionPane.sameSizeButtons</td>
687 <td>Boolean </td>
688 <td>true </td>
689 <td>Whether or not all the buttons should be the same size. </td>
690 </tr>
691 <tr>
692 <td>OptionPane.separatorPadding</td>
693 <td>Integer </td>
694 <td>6</td>
695 <td>Amount of padding between the message area and separator. </td>
696 </tr>
697 <tr>
698 <td>OptionPane.yesIcon</td>
699 <td>Icon </td>
700 <td>null </td>
701 <td>Icon for the yes button. </td>
702 </tr>
703 <tr>
704 <td>OptionPane.warningIcon</td>
705 <td>Icon </td>
706 <td>null </td>
707 <td>Icon used for error WARNING_MESSAGE </td>
708 </tr>
709 </tbody>
710</table>
711<br>
712<h4><a name="JProgressBar"></a>JProgressBar<br>
713</h4>
714<h5>JProgressBar Specific Properties<br>
715</h5>
716<table cellpadding="2" cellspacing="2" border="1"
717 style="text-align: left; width: 100%;">
718 <tbody>
719 <tr>
720 <th style="vertical-align: top; text-align: center;">Property</th>
721 <th style="vertical-align: top; text-align: center;">Expected Type<br>
722 </th>
723 <th style="vertical-align: top; text-align: center;">Default Value<br>
724 </th>
725 <th style="vertical-align: top; text-align: center;">Description</th>
726 </tr>
727 <tr>
728 <td style="vertical-align: top;">ProgressBar.repaintInterval<br>
729 </td>
730 <td style="vertical-align: top;">Integer<br>
731 </td>
732 <td style="vertical-align: top;">50<br>
733 </td>
734 <td style="vertical-align: top;">Number of milliseconds between
735repaints for indeterminate progress bars.<br>
736 </td>
737 </tr>
738 <tr>
739 <td style="vertical-align: top;">ProgressBar.cycleTime<br>
740 </td>
741 <td style="vertical-align: top;">Integer<br>
742 </td>
743 <td style="vertical-align: top;">3000<br>
744 </td>
745 <td style="vertical-align: top;">Number of milliseconds used to
746determine how far to move<br>
747the bouncing box per frame when the progress bar is indeterminate.<br>
748 </td>
749 </tr>
750 </tbody>
751</table>
752<h4><a name="JRadioButton">JRadioButton</a></h4>
753<p> JRadioButton paints text using the TEXT_FOREGROUND ColorType. In
754addition to the <a href="#buttonProperties">Button properties</a>,
755JRadioButton supports the following property: </p>
756<h5>JRadioButton Specific Properties</h5>
757<table border="1">
758 <thead><tr>
759 <th>Property</th>
760 <th>Expected Type</th>
761 <th>Default Value</th>
762 <th>Description </th>
763 </tr>
764 </thead> <tbody>
765 <tr>
766 <td>RadioButton.icon</td>
767 <td>Icon</td>
768 <td>null </td>
769 <td>Icon used to render the radio indicator. </td>
770 </tr>
771 </tbody>
772</table>
773<br>
774<h4><a name="JScrollBar">JScrollBar</a></h4>
775<p> JScrollBar is a composite component that consists of the following
776child Components: </p>
777<table border="1">
778 <thead><tr>
779 <th>Name</th>
780 <th>Type</th>
781 <th>Description </th>
782 </tr>
783 </thead> <tbody>
784 <tr>
785 <td>ScrollBar.button</td>
786 <td>SynthArrowButton </td>
787 <td>Identifies the increment/decrement buttons. </td>
788 </tr>
789 </tbody>
790</table>
791<p> </p>
792<h5>JScrollBar Specific Properties</h5>
793<table border="1">
794 <thead><tr>
795 <th>Property</th>
796 <th>Expected Type</th>
797 <th>Default Value</th>
798 <th>Description </th>
799 </tr>
800 </thead> <tbody>
801 <tr>
802 <td>ScrollBar.allowsAbsolutePositioning</td>
803 <td>Boolean </td>
804 <td>false</td>
805 <td>If true, middle mouse click in the track will set the
806position of the track to where the mouse is. </td>
807 </tr>
808 <tr>
809 <td>ScrollBar.maximumThumbSize</td>
810 <td>Dimension</td>
811 <td>4096x4096 </td>
812 <td>Maximum thumb size. </td>
813 </tr>
814 <tr>
815 <td>ScrollBar.minimumThumbSize</td>
816 <td>Dimension</td>
817 <td>Derived from ScrollBar.thumbHeight</td>
818 <td>The minimum thumb size. If this is not specified the
819 minimum thumb size is ScrollBar.thumbHeight plus the insets
820 of the scrollbar along the opposite axis of the scrollbar
821 and 7 along the other axis. For example, if you have not
822 specified Insets for a scrollbar, and the orientation of
823 the scrollbar is vertical, than the minimum thumb
824 size width is ScrollBar.thumbHeight with a height of 7.</td>
825 </tr>
826 <tr>
827 <td>ScrollBar.squareButtons</td>
828 <td>Boolean </td>
829 <td>false</td>
830 <td>If true, the width and height of the scrollbar buttons
831will be made equal. </td>
832 </tr>
833 <tr>
834 <td>ScrollBar.thumbHeight</td>
835 <td>Integer</td>
836 <td>14 </td>
837 <td>The preferred height, when the orientation of the
838 scrollbar is horizontal, or preferred width when the
839 orientation of the scrollbar is vertical.</td>
840 </tr>
841 </tbody>
842</table>
843<br>
844<h4><a name="Separator">Separators</a></h4>
845<p> All of the separator classes, JSeparator, JPopupMenu.Separator and
846JToolBar.Separator use the same property: </p>
847<table border="1">
848 <thead><tr>
849 <th>Property</th>
850 <th>Expected Type</th>
851 <th>Default Value</th>
852 <th>Description </th>
853 </tr>
854 </thead> <tbody>
855 <tr>
856 <td>Separator.thickness</td>
857 <td>Integer</td>
858 <td>2 </td>
859 <td>Preferred width, for vertically aligned separators, or
860preferred height for horizontally aligned separators. The resulting
861preferred size will include the Insets. </td>
862 </tr>
863 </tbody>
864</table>
865<p> JToolBar.Separator also supports the following property: </p>
866<table border="1">
867 <thead><tr>
868 <th>Property</th>
869 <th>Expected Type</th>
870 <th>Default Value</th>
871 <th>Description </th>
872 </tr>
873 </thead> <tbody>
874 <tr>
875 <td>ToolBar.separatorSize</td>
876 <td>Dimension</td>
877 <td>null </td>
878 <td>The value of this is passed to the <code>javax.swing.JToolBar$Separator#setSeparatorSize(java.awt.Dimension)</code>
879method. If unspecified <code>setSeparatorSize</code> is not
880invoked. </td>
881 </tr>
882 </tbody>
883</table>
884<br>
885<h4><a name="JScrollPane">JScrollPane</a></h4>
886<p>
887 JScrollPane is unique in that it provides a method for setting
888 the Border around the JViewport with JViewport throwing an
889 IllegalArgumentException from <code>setBorder</code>. To
890 accomodate this a special border is installed on the
891 <code>JScrollPane</code> that uses the
892 insets from the key
893 <code>ScrollPane.viewportBorderInsets</code>. The
894 <code>SynthPainter</code> method
895 <code>paintViewportBorder</code> is called to paint the
896 <code>Viewport</code>s border.
897 </p>
898<h5>JScrollPane Specific Properties</h5>
899<table border="1">
900 <thead><tr>
901 <th>Property</th>
902 <th>Expected Type</th>
903 <th>Default Value</th>
904 <th>Description </th>
905 </tr>
906 </thead> <tbody>
907 <tr>
908 <td>ScrollPane.viewportBorderInsets</td>
909 <td>Insets</td>
910 <td>null </td>
911 <td>Insets for the viewport Border. </td>
912 </tr>
913 </tbody>
914</table>
915<br>
916<h4><a name="JSplitPane">JSplitPane</a></h4>
917<p> JSplitPane is a composite component that will contain a divider and
918potentially two buttons, if setOneTouchExpandable(true) has been
919invoked. The two buttons will be named:
920SplitPaneDivider.leftOneTouchButton and
921SplitPaneDivider.rightOneTouchButton. </p>
922<h5>JSplitPane Specific Properties</h5>
923<table border="1">
924 <thead><tr>
925 <th>Property</th>
926 <th>Expected Type</th>
927 <th>Default Value</th>
928 <th>Description </th>
929 </tr>
930 </thead> <tbody>
931 <tr>
932 <td>SplitPane.centerOneTouchButtons</td>
933 <td>Boolean</td>
934 <td>true </td>
935 <td>If true, the one touch buttons are centered on the divider. </td>
936 </tr>
937 <tr>
938 <td>SplitPane.oneTouchButtonOffset</td>
939 <td>Integer</td>
940 <td>2 </td>
941 <td>Distance between the one touch buttons. </td>
942 </tr>
943 <tr>
944 <td>SplitPane.oneTouchButtonSize</td>
945 <td>Integer</td>
946 <td>6 </td>
947 <td>Size to make the one touch buttons. </td>
948 </tr>
949 <tr>
950 <td>SplitPane.oneTouchExpandable</td>
951 <td>Boolean</td>
952 <td>null </td>
953 <td>If non null, the value of this is passed to
954setOneTouchExpandable. </td>
955 </tr>
956 <tr>
957 <td>SplitPane.size</td>
958 <td>Integer</td>
959 <td>6 </td>
960 <td>Size of the divider </td>
961 </tr>
962 </tbody>
963</table>
964<br>
965<h4><a name="JSlider"></a>JSlider</h4>
966<h5>JSlider Specific Properties</h5>
967<table cellpadding="2" cellspacing="2" border="1"
968 style="text-align: left; width: 100%;">
969 <tbody>
970 <tr>
971 <th style="vertical-align: top; text-align: center;">Property<br>
972 </th>
973 <th style="vertical-align: top; text-align: center;">Expected Type<br>
974 </th>
975 <th style="vertical-align: top; text-align: center;">Default Value<br>
976 </th>
977 <th style="vertical-align: top; text-align: center;">Description<br>
978 </th>
979 </tr>
980 <tr>
981 <td style="vertical-align: top;">Slider.thumbWidth<br>
982 </td>
983 <td style="vertical-align: top;">Integer<br>
984 </td>
985 <td style="vertical-align: top;">30<br>
986 </td>
987 <td style="vertical-align: top;">Width of the slider thumb<br>
988 </td>
989 </tr>
990 <tr>
991 <td style="vertical-align: top;">Slider.thumbHeight<br>
992 </td>
993 <td style="vertical-align: top;">Integer<br>
994 </td>
995 <td style="vertical-align: top;">14<br>
996 </td>
997 <td style="vertical-align: top;">Height of the slider thumb<br>
998 </td>
999 </tr>
1000 <tr>
1001 <td style="vertical-align: top;">Slider.trackBorder<br>
1002 </td>
1003 <td style="vertical-align: top;">Integer<br>
1004 </td>
1005 <td style="vertical-align: top;">1<br>
1006 </td>
1007 <td style="vertical-align: top;">Width of the track border<br>
1008 </td>
1009 </tr>
1010 <tr>
1011 <td style="vertical-align: top;">Slider.paintValue<br>
1012 </td>
1013 <td style="vertical-align: top;">Boolean<br>
1014 </td>
1015 <td style="vertical-align: top;">true<br>
1016 </td>
1017 <td style="vertical-align: top;">Whether or not to paint the
1018current value<br>
1019of the slider.<br>
1020 </td>
1021 </tr>
1022 </tbody>
1023</table>
1024<br>
1025<h4><a name="JTabbedPane"></a>JTabbedPane</h4>
1026<h5>JTabbedPane Specific Properties</h5>
1027<table cellpadding="2" cellspacing="2" border="1"
1028 style="text-align: left; width: 100%;">
1029 <tbody>
1030 <tr>
1031 <th style="vertical-align: top; text-align: center;">Property</th>
1032 <th style="vertical-align: top; text-align: center;">Expected Type<br>
1033 </th>
1034 <th style="vertical-align: top; text-align: center;">Default Value<br>
1035 </th>
1036 <th style="vertical-align: top; text-align: center;">Description</th>
1037 </tr>
1038 <tr>
1039 <td style="vertical-align: top;">TabbedPane.tabRunOverlay<br>
1040 </td>
1041 <td style="vertical-align: top;">Integer<br>
1042 </td>
1043 <td style="vertical-align: top;">0<br>
1044 </td>
1045 <td style="vertical-align: top;">Number of pixels to overlap
1046 tabs when there is more than one row. <br>
1047 </td>
1048 </tr>
1049 <tr>
1050 <td style="vertical-align: top;">TabbedPane.textIconGap<br>
1051 </td>
1052 <td style="vertical-align: top;">Integer<br>
1053 </td>
1054 <td style="vertical-align: top;">0<br>
1055 </td>
1056 <td style="vertical-align: top;">Padding added between the icon
1057 and text on a tab. If there is no text or icon this value
1058 is not used.
1059 </td>
1060 </tr>
1061 <tr>
1062 <td style="vertical-align: top;">TabbedPane.selectedTabPadInsets<br>
1063 </td>
1064 <td style="vertical-align: top;">Insets<br>
1065 </td>
1066 <td style="vertical-align: top;">Empty Insets (0, 0, 0, 0)<br>
1067 </td>
1068 <td style="vertical-align: top;">Extra insets added to the
1069selected tab.<br>
1070 </td>
1071 </tr>
1072 <tr>
1073 <td style="vertical-align: top;">TabbedPane.selectionFollowsFocus<br>
1074 </td>
1075 <td style="vertical-align: top;">Boolean<br>
1076 </td>
1077 <td style="vertical-align: top;">true<br>
1078 </td>
1079 <td style="vertical-align: top;">If true the selection of the
1080 tabbed pane changes as the user navigates the tabs with a
1081 mouse.<br>
1082 </td>
1083 </tr>
1084 </tbody>
1085</table>
1086<br>
1087<h4><a name="JTable">JTable</a></h4>
1088<p> JTable sets the name of the renderer to Table.cellRenderer.
1089JTable supports the following properties: </p>
1090<h5>JTable Specific Properties</h5>
1091<table border="1">
1092 <thead><tr>
1093 <th>Property</th>
1094 <th>Expected Type</th>
1095 <th>Default Value</th>
1096 <th>Description </th>
1097 </tr>
1098 </thead> <tbody>
1099 <tr>
1100 <td>Table.gridColor</td>
1101 <td>Color</td>
1102 <td>null </td>
1103 <td>Color used for the grid. If null the foreground from the
1104style is used. </td>
1105 </tr>
1106 <tr>
1107 <td>Table.rendererUseTableColors</td>
1108 <td>Boolean</td>
1109 <td>true </td>
1110 <td>If true the renderers state is not updated, and the text
1111colors come from JTable's getSelectionBackground and
1112getSelectionForeground methods. If false, the renderer's state is
1113updated and the colors will instead come from the Style. </td>
1114 </tr>
1115 <tr>
1116 <td>Table.rendererUseUIBorder</td>
1117 <td>Boolean</td>
1118 <td>true </td>
1119 <td>If true setBorder on the renderer will succeed
1120regardless of the border passed in, otherwise setBorder on the
1121renderer will only succeed if it is a Synth Border. </td>
1122 </tr>
1123 <tr>
1124 <td>Table.rowHeight</td>
1125 <td>Integer</td>
1126 <td>-1 </td>
1127 <td>If not -1 setRowHeight is invoked on the JTable. </td>
1128 </tr>
1129 </tbody>
1130</table>
1131<br>
1132<h4><a name="JTree">JTree</a></h4>
1133<p> JTree sets the name of the renderer to Tree.renderer, the name of
1134the editor is Tree.cellEditor.</p>
1135<h5>JTree Specific Properties</h5>
1136<table border="1">
1137 <thead><tr>
1138 <th>Property</th>
1139 <th>Expected Type</th>
1140 <th>Default Value</th>
1141 <th>Description </th>
1142 </tr>
1143 </thead> <tbody>
1144 <tr>
1145 <td>Tree.collapsedIcon</td>
1146 <td>Icon</td>
1147 <td>null </td>
1148 <td>Icon to use when a node is collapsed. </td>
1149 </tr>
1150 <tr>
1151 <td>Tree.drawHorizontalLines</td>
1152 <td>Boolean</td>
1153 <td>true </td>
1154 <td>If true nodes have a horizontal connecting them to the
1155leading edge of their parent. </td>
1156 </tr>
1157 <tr>
1158 <td>Tree.drawVerticalLines</td>
1159 <td>Boolean</td>
1160 <td>true </td>
1161 <td>If true a vertical line is drawn down from expanded nodes. </td>
1162 </tr>
1163 <tr>
1164 <td>Tree.expandedIcon</td>
1165 <td>Icon</td>
1166 <td>null </td>
1167 <td>Icon to use when a node has been expanded. </td>
1168 </tr>
1169 <tr>
1170 <td>Tree.leftChildIndent</td>
1171 <td>Integer</td>
1172 <td>0 </td>
1173 <td>This plus Tree.rightChildIndent account for the total
1174space, along the y axis, to offset nodes from their parent. </td>
1175 </tr>
1176 <tr>
1177 <td>Tree.rightChildIndent</td>
1178 <td>Integer</td>
1179 <td>0 </td>
1180 <td>This plus Tree.leftChildIndent account for the total
1181space, along the y axis, to offset nodes from their parent. </td>
1182 </tr>
1183 <tr>
1184 <td>Tree.rowHeight</td>
1185 <td>Integer</td>
1186 <td>-1 </td>
1187 <td>Row height for the Tree.</td>
1188 </tr>
1189 <tr>
1190 <td>Tree.scrollsHorizontallyAndVertically</td>
1191 <td>Boolean</td>
1192 <td>false </td>
1193 <td>If false and scrolling needs to happen to accomodate cells
1194it will only happen along the vertical axis, if true, scrolling
1195may happen along both the horizontal and vertical axis. </td>
1196 </tr>
1197 <tr>
1198 <td>Tree.scrollsOnExpand</td>
1199 <td>Boolean</td>
1200 <td>true </td>
1201 <td>Whether or not the JTree should scroll when a node is
1202expanded. </td>
1203 </tr>
1204 <tr>
1205 <td>Tree.linesStyle</td>
1206 <td>String</td>
1207 <td> </td>
1208 <td>The styles of the lines in the tree. Synth supports solid lines
1209(empty value) and dashed lines ("dashed" value). It is possible to add new
1210styles by creating a new <a href="../SynthGraphicsUtils.html">SynthGraphicsUtils</a>
1211and <a href="synthFileFormat.html#e.graphicsUtils">binding it</a> to the tree.</td>
1212 </tr>
1213 </tbody>
1214</table>
1215<h4><a name="JToggleButton">JToggleButton</a></h4>
1216<p> JToggleButton paints text using the TEXT_FOREGROUND ColorType. In
1217addition to the <a href="#buttonProperties">Button properties</a>,
1218JToggleButton supports the following property: </p>
1219<h5>JToggleButton Specific Properties</h5>
1220<table border="1">
1221 <thead><tr>
1222 <th>Property</th>
1223 <th>Expected Type</th>
1224 <th>Default Value</th>
1225 <th>Description </th>
1226 </tr>
1227 </thead> <tbody>
1228 <tr>
1229 <td>ToggleButton.icon</td>
1230 <td>Icon</td>
1231 <td>null </td>
1232 <td>Icon used to render the radio indicator. </td>
1233 </tr>
1234 </tbody>
1235</table>
1236<br>
1237<h4><a name="buttonProperties">Button Properties</a></h4>
1238<p> Each of the Button classes (JButton, JCheckBox, JRadioButton,
1239JToggleButton and SynthArrowButton) support a similar set of properties.
1240These properties are: </p>
1241<table border="1">
1242 <thead><tr>
1243 <th>Property</th>
1244 <th>Expected Type</th>
1245 <th>Default Value</th>
1246 <th>Description </th>
1247 </tr>
1248 </thead> <tbody>
1249 <tr>
1250 <td>prefix.contentAreaFilled</td>
1251 <td>Integer</td>
1252 <td>true </td>
1253 <td>Refer to the javadoc of <code>javax.swing.AbstractButton#contentAreaFilled(boolean)</code> for details
1254of how this is used. It is up to the Painter to properly honor this
1255property. </td>
1256 </tr>
1257 <tr>
1258 <td>prefix.iconTextGap</td>
1259 <td>Integer</td>
1260 <td>If unspecified, JButton.setIconTextGap is not invoked. </td>
1261 <td>Padding between the icon and text. Refer to the javadoc of <code>javax.swing.AbstractButton#setIconTextGap(int)</code> for details of how
1262this is used. </td>
1263 </tr>
1264 <tr>
1265 <td>prefix.margin</td>
1266 <td>Insets</td>
1267 <td>Empty Insets (0, 0, 0, 0) </td>
1268 <td>Margin for the JButton. Refer to the javadoc of <code>javax.swing.AbstractButton#setMargin(java.awt.Insets)</code> for details
1269of how the margin is used. </td>
1270 </tr>
1271 <tr>
1272 <td>prefix.textShiftOffset</td>
1273 <td>Integer</td>
1274 <td>0 </td>
1275 <td>Amount to shift the text and icon, along the x and y axis,
1276from where it would normally be layed out. This is only used when
1277the button is in a pressed state and does not have a pressed icon. </td>
1278 </tr>
1279 </tbody>
1280</table>
1281<p> <code>Prefix</code> is one of: Button, CheckBox, RadioButton or
1282JToggleButton.<br>
1283</p>
1284<h4><a name="textProperties"></a>Text Properties<br>
1285</h4>
1286<table cellpadding="2" cellspacing="2" border="1"
1287 style="text-align: left; width: 100%;">
1288 <tbody>
1289 <tr>
1290 <th style="vertical-align: top; text-align: center;">Property</th>
1291 <th style="vertical-align: top; text-align: center;">Expected Type<br>
1292 </th>
1293 <th style="vertical-align: top; text-align: center;">Default Value<br>
1294 </th>
1295 <th style="vertical-align: top; text-align: center;">Description<br>
1296 </th>
1297 </tr>
1298 <tr>
1299 <td style="vertical-align: top;">prefix.caretForeground<br>
1300 </td>
1301 <td style="vertical-align: top;">Color<br>
1302 </td>
1303 <td style="vertical-align: top;">#000000</td>
1304 <td style="vertical-align: top;">Color of the caret.<br>
1305 </td>
1306 </tr>
1307 <tr>
1308 <td style="vertical-align: top;">prefix.margin<br>
1309 </td>
1310 <td style="vertical-align: top;">Insets</td>
1311 <td style="vertical-align: top;">Empty Insets (0, 0, 0, 0),<br>
1312EditorPane and TextPane (3, 3, 3, 3)<br>
1313 </td>
1314 <td style="vertical-align: top;">Margins of the text component.<br>
1315 </td>
1316 </tr>
1317 <tr>
1318 <td style="vertical-align: top;">prefix.caretBlinkRate<br>
1319 </td>
1320 <td style="vertical-align: top;">Integer<br>
1321 </td>
1322 <td style="vertical-align: top;">500<br>
1323 </td>
1324 <td style="vertical-align: top;">Number of milliseconds defining
1325the blink rate fo the caret.<br>
1326 </td>
1327 </tr>
1328 </tbody>
1329</table>
1330<p><code>Prefix</code> is one of: EditorPane, FormattedTextField,
1331PasswordField, TextArea, TextField or TextPane.<br>
1332</p>
1333</body>
1334</html>