1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2 <html>
3 <head>
4 <!--
5 Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
6 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
7
8 This code is free software; you can redistribute it and/or modify it
9 under the terms of the GNU General Public License version 2 only, as
10 published by the Free Software Foundation. Oracle designates this
11 particular file as subject to the "Classpath" exception as provided
12 by Oracle in the LICENSE file that accompanied this code.
13
14 This code is distributed in the hope that it will be useful, but WITHOUT
15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
16 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
17 version 2 for more details (a copy is included in the LICENSE file that
18 accompanied this code).
19
20 You should have received a copy of the GNU General Public License version
21 2 along with this work; if not, write to the Free Software Foundation,
22 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
23
24 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
25 or visit www.oracle.com if you need additional information or have any
26 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
33 can be customized by way of component specific properties.
34 These 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.
44 ArrowButton is typically not created directly, rather some of the
45 Components will create it to render a button with an arrow. The
46 components that make use of ArrowButton are:
47 JComboBox, JScrollBar and JSplitPane (for the buttons on the divider).
48 In addition to the <a
49 href="#buttonProperties">Button properties</a>, ArrowButton supports
50 the following properties: </p>
51 <h5>ArrowButton Specific Properties</h5>
52 <table border="1" summary="ArrowButton specific properties">
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
71 to the <a href="#buttonProperties">Button properties</a>, JButton
72 supports the following property: </p>
73 <h5>JButton Specific Properties</h5>
74 <table border="1" summary="JButton specific properties">
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
87 button 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
94 addition to the <a href="#buttonProperties">Button properties</a>,
95 JCheckBox supports the following property: </p>
96 <h5>JCheckBox Specific Properties</h5>
97 <table border="1" summary="JCheckBox specific properties">
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
116 child Components: </p>
117 <table border="1" summary="JComboBox child components">
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>
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" summary="JInternalFrame specific properties"
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
364 system<br>
365 icon of the internal frame. If pressed<br>
366 the 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
374 internal 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" summary="JInternalFrameTitlePane specific properties"
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>
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
474 supports the following properties: </p>
475 <h5>JList Specific Properties</h5>
476 <table border="1" summary="JList specific properties">
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
489 colors come from JList's getSelectionBackground and
490 getSelectionForeground methods. If false, the renderer's state is
491 updated 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
498 of the border passed in, otherwise setBorder on the renderer will
499 only 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>
506 is 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
513 JRadioButtonMenuItem) all support the same set of properties and behave
514 similarly. Each component consists of two Regions: the region
515 specific to the component and Region.MENU_ITEM_ACCELERATOR.
516 MENU_ITEM_ACCELERATOR is used for painting the accelerator. Both Regions
517 paint text using the TEXT_FOREGROUND ColorType. The following set of
518 properties are supported: </p>
519 <table border="1" summary="Menu classes common properties">
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
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
598 components, they are: OptionPane.button, OptionPane.label,
599 OptionPane.comboBox, OptionPane.scrollPane, OptionPane.list,
600 OptionPane.textField, OptionPane.iconLabel. </p>
601 <h5>JOptionPane Specific Properties</h5>
602 <table border="1" summary="JOptionPane specific properties">
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>
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" summary="JProgressBar specific properties"
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
735 repaints 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
746 determine how far to move<br>
747 the 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
754 addition to the <a href="#buttonProperties">Button properties</a>,
755 JRadioButton supports the following property: </p>
756 <h5>JRadioButton Specific Properties</h5>
757 <table border="1" summary="JRadioButton specific properties">
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
776 child Components: </p>
777 <table border="1" summary="JScrollBar child components">
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
792 <h5>JScrollBar Specific Properties</h5>
793 <table border="1" summary="JScrollBar specific properties">
794 <thead><tr>
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
831 will 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
846 JToolBar.Separator use the same property: </p>
847 <table border="1" summary="Separator classes common properties">
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
860 preferred height for horizontally aligned separators. The resulting
861 preferred 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" summary="JToolBar.Separator specific properties">
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>
879 method. If unspecified <code>setSeparatorSize</code> is not
880 invoked. </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 accommodate 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" summary="JScrollPane specific properties">
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
918 potentially two buttons, if setOneTouchExpandable(true) has been
919 invoked. The two buttons will be named:
920 SplitPaneDivider.leftOneTouchButton and
921 SplitPaneDivider.rightOneTouchButton. </p>
922 <h5>JSplitPane Specific Properties</h5>
923 <table border="1" summary="JSplitPane specific properties">
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>
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
954 setOneTouchExpandable. </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" summary="JSlider specific properties"
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>
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
1018 current value<br>
1019 of 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" summary="JTabbedPane specific properties"
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
1067 </td>
1068 <td style="vertical-align: top;">Extra insets added to the
1069 selected 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.
1089 JTable supports the following properties: </p>
1090 <h5>JTable Specific Properties</h5>
1091 <table border="1" summary="JTable specific properties">
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
1104 style is used. </td>
1105 </tr>
1106 <tr>
1107 <td>Table.rendererUseTableColors</td>
1112 getSelectionForeground methods. If false, the renderer's state is
1113 updated 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
1120 regardless of the border passed in, otherwise setBorder on the
1121 renderer 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
1134 the editor is Tree.cellEditor.</p>
1135 <h5>JTree Specific Properties</h5>
1136 <table border="1" summary="JTree specific properties">
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>
1195 may 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
1202 expanded. </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
1210 styles by creating a new <a href="../SynthGraphicsUtils.html">SynthGraphicsUtils</a>
1211 and <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
1217 addition to the <a href="#buttonProperties">Button properties</a>,
1218 JToggleButton supports the following property: </p>
1219 <h5>JToggleButton Specific Properties</h5>
1220 <table border="1" summary="JToggleButton specific properties">
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,
1239 JToggleButton and SynthArrowButton) support a similar set of properties.
1240 These properties are: </p>
1241 <table border="1" summary="Button classes common properties">
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
1254 of how this is used. It is up to the Painter to properly honor this
1255 property. </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
1262 this 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
1269 of 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,
1276 from where it would normally be layed out. This is only used when
1277 the 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
1282 JToggleButton.<br>
1283 </p>
1284 <h4><a name="textProperties"></a>Text Properties<br>
1285 </h4>
1286 <table cellpadding="2" cellspacing="2" border="1" summary="Text properties"
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>
| 1 <!doctype html>
2 <html lang="en">
3 <head>
4 <meta charset="utf-8"/>
5 <title>Component Specific Properties</title>
6 </head>
7 <!--
8 Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved.
9 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
10
11 This code is free software; you can redistribute it and/or modify it
12 under the terms of the GNU General Public License version 2 only, as
13 published by the Free Software Foundation. Oracle designates this
14 particular file as subject to the "Classpath" exception as provided
15 by Oracle in the LICENSE file that accompanied this code.
16
17 This code is distributed in the hope that it will be useful, but WITHOUT
18 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
20 version 2 for more details (a copy is included in the LICENSE file that
21 accompanied this code).
22
23 You should have received a copy of the GNU General Public License version
24 2 along with this work; if not, write to the Free Software Foundation,
25 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
26
27 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
28 or visit www.oracle.com if you need additional information or have any
29 questions.
30 -->
31
32 <body bgcolor="white">
33 <h3>Component Specific Properties</h3>
34 <p> The look, and to some degree the feel of Synth
35 can be customized by way of component specific properties.
36 These properties are accessed from <a
37 href="../SynthStyle.html">SynthStyle#get</a>. Refer to <a
38 href="synthFileFormat.html#e.property">synth file format</a> for examples
39 of how to specify these properties in a synth configuration file.</p>
40 <p>
41 This file specifies the expected class type each of the values
42 are to take. The behavior of supplying the wrong type is
43 unspecified: typically a <code>ClassCastException</code> is
44 thrown, but it is implementation specific.
45 </p>
46 <h4>ArrowButton</h4>
47 <p> ArrowButton is a special type of JButton that renders an arrow.
48 ArrowButton is typically not created directly, rather some of the
49 Components will create it to render a button with an arrow. The
50 components that make use of ArrowButton are:
51 JComboBox, JScrollBar and JSplitPane (for the buttons on the divider).
52 In addition to the <a
53 href="#buttonProperties">Button properties</a>, ArrowButton supports
54 the following properties: </p>
55 <h5>ArrowButton Specific Properties</h5>
56 <table border="1" summary="ArrowButton specific properties">
57 <thead><tr>
58 <th>Property</th>
59 <th>Expected Type</th>
60 <th>Default Value</th>
61 <th>Description </th>
62 </tr>
63 </thead> <tbody>
64 <tr>
65 <td>ArrowButton.size</td>
66 <td>Integer</td>
67 <td>16 </td>
68 <td>Preferred size of the arrow button. </td>
69 </tr>
70 </tbody>
71 </table>
72 <br>
73 <h4><a id="JButton">JButton</a></h4>
74 <p> JButton paints text using the TEXT_FOREGROUND ColorType. In addition
75 to the <a href="#buttonProperties">Button properties</a>, JButton
76 supports the following property: </p>
77 <h5>JButton Specific Properties</h5>
78 <table border="1" summary="JButton specific properties">
79 <thead><tr>
80 <th>Property</th>
81 <th>Expected Type</th>
82 <th>Default Value</th>
83 <th>Description </th>
84 </tr>
85 </thead> <tbody>
86 <tr>
87 <td>Button.defaultButtonFollowsFocus</td>
88 <td>Boolean</td>
89 <td>true </td>
90 <td>Whether or not the default JButton should change to the
91 button that is receiving focus. </td>
92 </tr>
93 </tbody>
94 </table>
95 <br>
96 <h4><a id="JCheckBox">JCheckBox</a></h4>
97 <p> JCheckBox paints text using the TEXT_FOREGROUND ColorType. In
98 addition to the <a href="#buttonProperties">Button properties</a>,
99 JCheckBox supports the following property: </p>
100 <h5>JCheckBox Specific Properties</h5>
101 <table border="1" summary="JCheckBox specific properties">
102 <thead><tr>
103 <th>Property</th>
104 <th>Expected Type</th>
105 <th>Default Value</th>
106 <th>Description </th>
107 </tr>
108 </thead> <tbody>
109 <tr>
110 <td>CheckBox.icon</td>
111 <td>Icon</td>
112 <td>null </td>
113 <td>Icon used to render the check. </td>
114 </tr>
115 </tbody>
116 </table>
117 <br>
118 <h4><a id="JComboBox">JComboBox</a></h4>
119 <p> JComboBox is a composite component that consists of the following
120 child Components: </p>
121 <table border="1" summary="JComboBox child components">
122 <thead><tr>
123 <th>Name</th>
124 <th>Type</th>
125 <th>Description </th>
126 </tr>
127 </thead> <tbody>
128 <tr>
129 <td>ComboBox.arrowButton</td>
130 <td>SynthArrowButton </td>
131 <td>Renders the drop down indicator. </td>
132 </tr>
133 <tr>
134 <td>ComboBox.list</td>
135 <td>JList </td>
136 <td>JList used to render the values. </td>
137 </tr>
138 <tr>
326 </td>
327 <td style="vertical-align: top;">Icon used by the button that toggles the
328 regular files list view, showing only an icon and the name of each
329 file and directory.
330 </td>
331 </tr>
332 <tr>
333 <td style="vertical-align: top;">FileChooser.viewMenuIcon<br>
334 </td>
335 <td style="vertical-align: top;">Icon<br>
336 </td>
337 <td style="vertical-align: top;">null<br>
338 </td>
339 <td style="vertical-align: top;">Icon used by the button that shows popup menu
340 for selection of a view mode.
341 </td>
342 </tr>
343 </tbody>
344 </table>
345 <br>
346 <h4><a id="JInternalFrame"></a>JInternalFrame</h4>
347 <h5>JInternalFrame Specific Properties</h5>
348 <table cellpadding="2" cellspacing="2" border="1" summary="JInternalFrame specific properties"
349 style="text-align: left; width: 100%;">
350 <tbody>
351 <tr>
352 <th style="vertical-align: top; text-align: center;">Property<br>
353 </th>
354 <th style="vertical-align: top; text-align: center;">Expected Type<br>
355 </th>
356 <th style="vertical-align: top; text-align: center;">DefaultValue<br>
357 </th>
358 <th style="vertical-align: top; text-align: center;">Description<br>
359 </th>
360 </tr>
361 <tr>
362 <td style="vertical-align: top;">InternalFrame.icon<br>
363 </td>
364 <td style="vertical-align: top;">Icon</td>
365 <td style="vertical-align: top;">null<br>
366 </td>
367 <td style="vertical-align: top;">Icon drawn representing the
368 system<br>
369 icon of the internal frame. If pressed<br>
370 the system menu will be shown.<br>
371 </td>
372 </tr>
373 </tbody>
374 </table>
375 <br>
376 <h4><a id="JInternalFrameTitlePane"></a>JInternalFrameTitlePane</h4>
377 <p>JInternalFrameTitlePane is the control bar located at the top of the
378 internal frame similar to that found in a frame.<br>
379 </p>
380 <h5>JInternalFrameTitlePane Specific Properties</h5>
381 <table cellpadding="2" cellspacing="2" border="1" summary="JInternalFrameTitlePane specific properties"
382 style="text-align: left; width: 100%;">
383 <tbody>
384 <tr>
385 <th style="vertical-align: top; text-align: center;">Property<br>
386 </th>
387 <th style="vertical-align: top; text-align: center;">Expected Type<br>
388 </th>
389 <th style="vertical-align: top; text-align: center;">Default Value<br>
390 </th>
391 <th style="vertical-align: top; text-align: center;">Description<br>
392 </th>
393 </tr>
394 <tr>
395 <td style="vertical-align: top;">InternalFrameTitlePane.maximizeIcon<br>
396 </td>
456 <td style="vertical-align: top;">16x16</td>
457 <td style="vertical-align: top;">Maximum size of the frame
458 icon that will be rendered on the title pane. If the icon
459 is bigger than this size, it will be scaled down.
460 </td>
461 </tr>
462 <tr>
463 <td style="vertical-align: top;">InternalFrameTitlePane.titleAlignment<br>
464 </td>
465 <td style="vertical-align: top;">leading|trailing|center</td>
466 <td style="vertical-align: top;">leading</td>
467 <td style="vertical-align: top;">Alignment for the title.
468 With a left to right component orientation leading is left
469 and trailing right. With a right to left component
470 orientation leading is right and trailing left.
471 </td>
472 </tr>
473 </tbody>
474 </table>
475 <br>
476 <h4><a id="JList">JList</a></h4>
477 <p> JList's sets the name of the renderer to List.renderer. JList
478 supports the following properties: </p>
479 <h5>JList Specific Properties</h5>
480 <table border="1" summary="JList specific properties">
481 <thead><tr>
482 <th>Property</th>
483 <th>Expected Type</th>
484 <th>Default Value</th>
485 <th>Description </th>
486 </tr>
487 </thead> <tbody>
488 <tr>
489 <td>List.rendererUseListColors</td>
490 <td>Boolean</td>
491 <td>true </td>
492 <td>If true the renderers state is not updated, and the text
493 colors come from JList's getSelectionBackground and
494 getSelectionForeground methods. If false, the renderer's state is
495 updated and the colors will instead come from the Style. </td>
496 </tr>
497 <tr>
498 <td>List.rendererUseUIBorder</td>
499 <td>Boolean</td>
500 <td>true </td>
501 <td>If true setBorder on the renderer will succeed regardless
502 of the border passed in, otherwise setBorder on the renderer will
503 only succeed if it is a Synth Border. </td>
504 </tr>
505 <tr>
506 <td>List.cellHeight</td>
507 <td>Integer</td>
508 <td>-1 </td>
509 <td>Cell height of the JList. Is this is -1, <code>setFixedCellHeight</code>
510 is not invoked. </td>
511 </tr>
512 </tbody>
513 </table>
514 <br>
515 <h4><a id="menuProperties">Menu Properties</a></h4>
516 <p> The Menu classes (JCheckBoxMenuItem, JMenu, JMenuItem, and
517 JRadioButtonMenuItem) all support the same set of properties and behave
518 similarly. Each component consists of two Regions: the region
519 specific to the component and Region.MENU_ITEM_ACCELERATOR.
520 MENU_ITEM_ACCELERATOR is used for painting the accelerator. Both Regions
521 paint text using the TEXT_FOREGROUND ColorType. The following set of
522 properties are supported: </p>
523 <table border="1" summary="Menu classes common properties">
524 <thead><tr>
525 <th>Property</th>
526 <th>Expected Type</th>
527 <th>Default Value</th>
528 <th>Description </th>
529 </tr>
530 </thead> <tbody>
531 <tr>
532 <td>prefix.acceleratorDelimiter</td>
533 <td>String</td>
534 <td>+ </td>
535 <td>String separator between the description of the modifiers
580 <th>Expected Type</th>
581 <th>Default Value</th>
582 <th>Description </th>
583 </tr>
584 </thead> <tbody>
585 <tr>
586 <td>Menu.delay</td>
587 <td>Integer</td>
588 <td>200 </td>
589 <td>Sets the delay before the menu appears. </td>
590 </tr>
591 <tr>
592 <td>Menu.shortcutKeys</td>
593 <td>int[]</td>
594 <td>KeyEvent.ALT_MASK </td>
595 <td>Array of the KeyEvent modifiers to use for shortcut keys. </td>
596 </tr>
597 </tbody>
598 </table>
599 <br>
600 <h4><a id="JOptionPane">JOptionPane</a></h4>
601 <p> JOptionPane is a composite component and may consist of numerous child
602 components, they are: OptionPane.button, OptionPane.label,
603 OptionPane.comboBox, OptionPane.scrollPane, OptionPane.list,
604 OptionPane.textField, OptionPane.iconLabel. </p>
605 <h5>JOptionPane Specific Properties</h5>
606 <table border="1" summary="JOptionPane specific properties">
607 <thead><tr>
608 <th>Property</th>
609 <th>Expected Type</th>
610 <th>Default Value</th>
611 <th>Description </th>
612 </tr>
613 </thead> <tbody>
614 <tr>
615 <td>OptionPane.buttonAreaBorder</td>
616 <td>Border </td>
617 <td>null </td>
618 <td>Border around the button area. </td>
619 </tr>
620 <tr>
696 <td>OptionPane.separatorPadding</td>
697 <td>Integer </td>
698 <td>6</td>
699 <td>Amount of padding between the message area and separator. </td>
700 </tr>
701 <tr>
702 <td>OptionPane.yesIcon</td>
703 <td>Icon </td>
704 <td>null </td>
705 <td>Icon for the yes button. </td>
706 </tr>
707 <tr>
708 <td>OptionPane.warningIcon</td>
709 <td>Icon </td>
710 <td>null </td>
711 <td>Icon used for error WARNING_MESSAGE </td>
712 </tr>
713 </tbody>
714 </table>
715 <br>
716 <h4><a id="JProgressBar"></a>JProgressBar<br>
717 </h4>
718 <h5>JProgressBar Specific Properties<br>
719 </h5>
720 <table cellpadding="2" cellspacing="2" border="1" summary="JProgressBar specific properties"
721 style="text-align: left; width: 100%;">
722 <tbody>
723 <tr>
724 <th style="vertical-align: top; text-align: center;">Property</th>
725 <th style="vertical-align: top; text-align: center;">Expected Type<br>
726 </th>
727 <th style="vertical-align: top; text-align: center;">Default Value<br>
728 </th>
729 <th style="vertical-align: top; text-align: center;">Description</th>
730 </tr>
731 <tr>
732 <td style="vertical-align: top;">ProgressBar.repaintInterval<br>
733 </td>
734 <td style="vertical-align: top;">Integer<br>
735 </td>
736 <td style="vertical-align: top;">50<br>
737 </td>
738 <td style="vertical-align: top;">Number of milliseconds between
739 repaints for indeterminate progress bars.<br>
740 </td>
741 </tr>
742 <tr>
743 <td style="vertical-align: top;">ProgressBar.cycleTime<br>
744 </td>
745 <td style="vertical-align: top;">Integer<br>
746 </td>
747 <td style="vertical-align: top;">3000<br>
748 </td>
749 <td style="vertical-align: top;">Number of milliseconds used to
750 determine how far to move<br>
751 the bouncing box per frame when the progress bar is indeterminate.<br>
752 </td>
753 </tr>
754 </tbody>
755 </table>
756 <h4><a id="JRadioButton">JRadioButton</a></h4>
757 <p> JRadioButton paints text using the TEXT_FOREGROUND ColorType. In
758 addition to the <a href="#buttonProperties">Button properties</a>,
759 JRadioButton supports the following property: </p>
760 <h5>JRadioButton Specific Properties</h5>
761 <table border="1" summary="JRadioButton specific properties">
762 <thead><tr>
763 <th>Property</th>
764 <th>Expected Type</th>
765 <th>Default Value</th>
766 <th>Description </th>
767 </tr>
768 </thead> <tbody>
769 <tr>
770 <td>RadioButton.icon</td>
771 <td>Icon</td>
772 <td>null </td>
773 <td>Icon used to render the radio indicator. </td>
774 </tr>
775 </tbody>
776 </table>
777 <br>
778 <h4><a id="JScrollBar">JScrollBar</a></h4>
779 <p> JScrollBar is a composite component that consists of the following
780 child Components: </p>
781 <table border="1" summary="JScrollBar child components">
782 <thead><tr>
783 <th>Name</th>
784 <th>Type</th>
785 <th>Description </th>
786 </tr>
787 </thead> <tbody>
788 <tr>
789 <td>ScrollBar.button</td>
790 <td>SynthArrowButton </td>
791 <td>Identifies the increment/decrement buttons. </td>
792 </tr>
793 </tbody>
794 </table>
795
796 <h5>JScrollBar Specific Properties</h5>
797 <table border="1" summary="JScrollBar specific properties">
798 <thead><tr>
828 size width is ScrollBar.thumbHeight with a height of 7.</td>
829 </tr>
830 <tr>
831 <td>ScrollBar.squareButtons</td>
832 <td>Boolean </td>
833 <td>false</td>
834 <td>If true, the width and height of the scrollbar buttons
835 will be made equal. </td>
836 </tr>
837 <tr>
838 <td>ScrollBar.thumbHeight</td>
839 <td>Integer</td>
840 <td>14 </td>
841 <td>The preferred height, when the orientation of the
842 scrollbar is horizontal, or preferred width when the
843 orientation of the scrollbar is vertical.</td>
844 </tr>
845 </tbody>
846 </table>
847 <br>
848 <h4><a id="Separator">Separators</a></h4>
849 <p> All of the separator classes, JSeparator, JPopupMenu.Separator and
850 JToolBar.Separator use the same property: </p>
851 <table border="1" summary="Separator classes common properties">
852 <thead><tr>
853 <th>Property</th>
854 <th>Expected Type</th>
855 <th>Default Value</th>
856 <th>Description </th>
857 </tr>
858 </thead> <tbody>
859 <tr>
860 <td>Separator.thickness</td>
861 <td>Integer</td>
862 <td>2 </td>
863 <td>Preferred width, for vertically aligned separators, or
864 preferred height for horizontally aligned separators. The resulting
865 preferred size will include the Insets. </td>
866 </tr>
867 </tbody>
868 </table>
869 <p> JToolBar.Separator also supports the following property: </p>
870 <table border="1" summary="JToolBar.Separator specific properties">
871 <thead><tr>
872 <th>Property</th>
873 <th>Expected Type</th>
874 <th>Default Value</th>
875 <th>Description </th>
876 </tr>
877 </thead> <tbody>
878 <tr>
879 <td>ToolBar.separatorSize</td>
880 <td>Dimension</td>
881 <td>null </td>
882 <td>The value of this is passed to the
883 <code>javax.swing.JToolBar$Separator#setSeparatorSize(java.awt.Dimension)</code>
884 method. If unspecified <code>setSeparatorSize</code> is not invoked.
885 </td>
886 </tr>
887 </tbody>
888 </table>
889 <br>
890 <h4><a id="JScrollPane">JScrollPane</a></h4>
891 <p>
892 JScrollPane is unique in that it provides a method for setting
893 the Border around the JViewport with JViewport throwing an
894 IllegalArgumentException from <code>setBorder</code>. To
895 accommodate this a special border is installed on the
896 <code>JScrollPane</code> that uses the
897 insets from the key
898 <code>ScrollPane.viewportBorderInsets</code>. The
899 <code>SynthPainter</code> method
900 <code>paintViewportBorder</code> is called to paint the
901 <code>Viewport</code>s border.
902 </p>
903 <h5>JScrollPane Specific Properties</h5>
904 <table border="1" summary="JScrollPane specific properties">
905 <thead><tr>
906 <th>Property</th>
907 <th>Expected Type</th>
908 <th>Default Value</th>
909 <th>Description </th>
910 </tr>
911 </thead> <tbody>
912 <tr>
913 <td>ScrollPane.viewportBorderInsets</td>
914 <td>Insets</td>
915 <td>null </td>
916 <td>Insets for the viewport Border. </td>
917 </tr>
918 </tbody>
919 </table>
920 <br>
921 <h4><a id="JSplitPane">JSplitPane</a></h4>
922 <p> JSplitPane is a composite component that will contain a divider and
923 potentially two buttons, if setOneTouchExpandable(true) has been
924 invoked. The two buttons will be named:
925 SplitPaneDivider.leftOneTouchButton and
926 SplitPaneDivider.rightOneTouchButton. </p>
927 <h5>JSplitPane Specific Properties</h5>
928 <table border="1" summary="JSplitPane specific properties">
929 <thead><tr>
930 <th>Property</th>
931 <th>Expected Type</th>
932 <th>Default Value</th>
933 <th>Description </th>
934 </tr>
935 </thead> <tbody>
936 <tr>
937 <td>SplitPane.centerOneTouchButtons</td>
938 <td>Boolean</td>
939 <td>true </td>
940 <td>If true, the one touch buttons are centered on the divider. </td>
941 </tr>
950 <td>Integer</td>
951 <td>6 </td>
952 <td>Size to make the one touch buttons. </td>
953 </tr>
954 <tr>
955 <td>SplitPane.oneTouchExpandable</td>
956 <td>Boolean</td>
957 <td>null </td>
958 <td>If non null, the value of this is passed to
959 setOneTouchExpandable. </td>
960 </tr>
961 <tr>
962 <td>SplitPane.size</td>
963 <td>Integer</td>
964 <td>6 </td>
965 <td>Size of the divider </td>
966 </tr>
967 </tbody>
968 </table>
969 <br>
970 <h4><a id="JSlider"></a>JSlider</h4>
971 <h5>JSlider Specific Properties</h5>
972 <table cellpadding="2" cellspacing="2" border="1" summary="JSlider specific properties"
973 style="text-align: left; width: 100%;">
974 <tbody>
975 <tr>
976 <th style="vertical-align: top; text-align: center;">Property<br>
977 </th>
978 <th style="vertical-align: top; text-align: center;">Expected Type<br>
979 </th>
980 <th style="vertical-align: top; text-align: center;">Default Value<br>
981 </th>
982 <th style="vertical-align: top; text-align: center;">Description<br>
983 </th>
984 </tr>
985 <tr>
986 <td style="vertical-align: top;">Slider.thumbWidth<br>
987 </td>
988 <td style="vertical-align: top;">Integer<br>
989 </td>
990 <td style="vertical-align: top;">30<br>
1010 <td style="vertical-align: top;">1<br>
1011 </td>
1012 <td style="vertical-align: top;">Width of the track border<br>
1013 </td>
1014 </tr>
1015 <tr>
1016 <td style="vertical-align: top;">Slider.paintValue<br>
1017 </td>
1018 <td style="vertical-align: top;">Boolean<br>
1019 </td>
1020 <td style="vertical-align: top;">true<br>
1021 </td>
1022 <td style="vertical-align: top;">Whether or not to paint the
1023 current value<br>
1024 of the slider.<br>
1025 </td>
1026 </tr>
1027 </tbody>
1028 </table>
1029 <br>
1030 <h4><a id="JTabbedPane"></a>JTabbedPane</h4>
1031 <h5>JTabbedPane Specific Properties</h5>
1032 <table cellpadding="2" cellspacing="2" border="1" summary="JTabbedPane specific properties"
1033 style="text-align: left; width: 100%;">
1034 <tbody>
1035 <tr>
1036 <th style="vertical-align: top; text-align: center;">Property</th>
1037 <th style="vertical-align: top; text-align: center;">Expected Type<br>
1038 </th>
1039 <th style="vertical-align: top; text-align: center;">Default Value<br>
1040 </th>
1041 <th style="vertical-align: top; text-align: center;">Description</th>
1042 </tr>
1043 <tr>
1044 <td style="vertical-align: top;">TabbedPane.tabRunOverlay<br>
1045 </td>
1046 <td style="vertical-align: top;">Integer<br>
1047 </td>
1048 <td style="vertical-align: top;">0<br>
1049 </td>
1050 <td style="vertical-align: top;">Number of pixels to overlap
1072 </td>
1073 <td style="vertical-align: top;">Extra insets added to the
1074 selected tab.<br>
1075 </td>
1076 </tr>
1077 <tr>
1078 <td style="vertical-align: top;">TabbedPane.selectionFollowsFocus<br>
1079 </td>
1080 <td style="vertical-align: top;">Boolean<br>
1081 </td>
1082 <td style="vertical-align: top;">true<br>
1083 </td>
1084 <td style="vertical-align: top;">If true the selection of the
1085 tabbed pane changes as the user navigates the tabs with a
1086 mouse.<br>
1087 </td>
1088 </tr>
1089 </tbody>
1090 </table>
1091 <br>
1092 <h4><a id="JTable">JTable</a></h4>
1093 <p> JTable sets the name of the renderer to Table.cellRenderer.
1094 JTable supports the following properties: </p>
1095 <h5>JTable Specific Properties</h5>
1096 <table border="1" summary="JTable specific properties">
1097 <thead><tr>
1098 <th>Property</th>
1099 <th>Expected Type</th>
1100 <th>Default Value</th>
1101 <th>Description </th>
1102 </tr>
1103 </thead> <tbody>
1104 <tr>
1105 <td>Table.gridColor</td>
1106 <td>Color</td>
1107 <td>null </td>
1108 <td>Color used for the grid. If null the foreground from the
1109 style is used. </td>
1110 </tr>
1111 <tr>
1112 <td>Table.rendererUseTableColors</td>
1117 getSelectionForeground methods. If false, the renderer's state is
1118 updated and the colors will instead come from the Style. </td>
1119 </tr>
1120 <tr>
1121 <td>Table.rendererUseUIBorder</td>
1122 <td>Boolean</td>
1123 <td>true </td>
1124 <td>If true setBorder on the renderer will succeed
1125 regardless of the border passed in, otherwise setBorder on the
1126 renderer will only succeed if it is a Synth Border. </td>
1127 </tr>
1128 <tr>
1129 <td>Table.rowHeight</td>
1130 <td>Integer</td>
1131 <td>-1 </td>
1132 <td>If not -1 setRowHeight is invoked on the JTable. </td>
1133 </tr>
1134 </tbody>
1135 </table>
1136 <br>
1137 <h4><a id="JTree">JTree</a></h4>
1138 <p> JTree sets the name of the renderer to Tree.renderer, the name of
1139 the editor is Tree.cellEditor.</p>
1140 <h5>JTree Specific Properties</h5>
1141 <table border="1" summary="JTree specific properties">
1142 <thead><tr>
1143 <th>Property</th>
1144 <th>Expected Type</th>
1145 <th>Default Value</th>
1146 <th>Description </th>
1147 </tr>
1148 </thead> <tbody>
1149 <tr>
1150 <td>Tree.collapsedIcon</td>
1151 <td>Icon</td>
1152 <td>null </td>
1153 <td>Icon to use when a node is collapsed. </td>
1154 </tr>
1155 <tr>
1156 <td>Tree.drawHorizontalLines</td>
1157 <td>Boolean</td>
1200 may happen along both the horizontal and vertical axis. </td>
1201 </tr>
1202 <tr>
1203 <td>Tree.scrollsOnExpand</td>
1204 <td>Boolean</td>
1205 <td>true </td>
1206 <td>Whether or not the JTree should scroll when a node is
1207 expanded. </td>
1208 </tr>
1209 <tr>
1210 <td>Tree.linesStyle</td>
1211 <td>String</td>
1212 <td> </td>
1213 <td>The styles of the lines in the tree. Synth supports solid lines
1214 (empty value) and dashed lines ("dashed" value). It is possible to add new
1215 styles by creating a new <a href="../SynthGraphicsUtils.html">SynthGraphicsUtils</a>
1216 and <a href="synthFileFormat.html#e.graphicsUtils">binding it</a> to the tree.</td>
1217 </tr>
1218 </tbody>
1219 </table>
1220 <h4><a id="JToggleButton">JToggleButton</a></h4>
1221 <p> JToggleButton paints text using the TEXT_FOREGROUND ColorType. In
1222 addition to the <a href="#buttonProperties">Button properties</a>,
1223 JToggleButton supports the following property: </p>
1224 <h5>JToggleButton Specific Properties</h5>
1225 <table border="1" summary="JToggleButton specific properties">
1226 <thead><tr>
1227 <th>Property</th>
1228 <th>Expected Type</th>
1229 <th>Default Value</th>
1230 <th>Description </th>
1231 </tr>
1232 </thead> <tbody>
1233 <tr>
1234 <td>ToggleButton.icon</td>
1235 <td>Icon</td>
1236 <td>null </td>
1237 <td>Icon used to render the radio indicator. </td>
1238 </tr>
1239 </tbody>
1240 </table>
1241 <br>
1242 <h4><a id="buttonProperties">Button Properties</a></h4>
1243 <p> Each of the Button classes (JButton, JCheckBox, JRadioButton,
1244 JToggleButton and SynthArrowButton) support a similar set of properties.
1245 These properties are: </p>
1246 <table border="1" summary="Button classes common properties">
1247 <thead><tr>
1248 <th>Property</th>
1249 <th>Expected Type</th>
1250 <th>Default Value</th>
1251 <th>Description </th>
1252 </tr>
1253 </thead> <tbody>
1254 <tr>
1255 <td>prefix.contentAreaFilled</td>
1256 <td>Integer</td>
1257 <td>true </td>
1258 <td>Refer to the javadoc of
1259 <code>javax.swing.AbstractButton#contentAreaFilled(boolean)</code>
1260 for details of how this is used. It is up to the Painter to properly honor
1261 this property.
1262 </td>
1263 </tr>
1264 <tr>
1265 <td>prefix.iconTextGap</td>
1266 <td>Integer</td>
1267 <td>If unspecified, JButton.setIconTextGap is not invoked.</td>
1268 <td>Padding between the icon and text. Refer to the javadoc of
1269 <code>javax.swing.AbstractButton#setIconTextGap(int)</code>
1270 for details of how this is used.
1271 </td>
1272 </tr>
1273 <tr>
1274 <td>prefix.margin</td>
1275 <td>Insets</td>
1276 <td>Empty Insets (0, 0, 0, 0) </td>
1277 <td>Margin for the JButton. Refer to the javadoc of
1278 <code>javax.swing.AbstractButton#setMargin(java.awt.Insets)</code> for
1279 details of how the margin is used.
1280 </td>
1281 </tr>
1282 <tr>
1283 <td>prefix.textShiftOffset</td>
1284 <td>Integer</td>
1285 <td>0 </td>
1286 <td>Amount to shift the text and icon, along the x and y axis,
1287 from where it would normally be layed out. This is only used when
1288 the button is in a pressed state and does not have a pressed icon. </td>
1289 </tr>
1290 </tbody>
1291 </table>
1292 <p> <code>Prefix</code> is one of: Button, CheckBox, RadioButton or
1293 JToggleButton.<br>
1294 </p>
1295 <h4><a id="textProperties"></a>Text Properties<br>
1296 </h4>
1297 <table cellpadding="2" cellspacing="2" border="1" summary="Text properties"
1298 style="text-align: left; width: 100%;">
1299 <tbody>
1300 <tr>
1301 <th style="vertical-align: top; text-align: center;">Property</th>
1302 <th style="vertical-align: top; text-align: center;">Expected Type<br>
1303 </th>
1304 <th style="vertical-align: top; text-align: center;">Default Value<br>
1305 </th>
1306 <th style="vertical-align: top; text-align: center;">Description<br>
1307 </th>
1308 </tr>
1309 <tr>
1310 <td style="vertical-align: top;">prefix.caretForeground<br>
1311 </td>
1312 <td style="vertical-align: top;">Color<br>
1313 </td>
1314 <td style="vertical-align: top;">#000000</td>
1315 <td style="vertical-align: top;">Color of the caret.<br>
|