组件特定属性
Synth 的外观以及某种程度上的感觉可以通过组件特定属性进行定制。这些属性可从 合成风格#get 访问。有关如何在合成器配置文件中指定这些属性的示例,请参阅 合成文件格式。
该文件指定了每个值要采用的预期类类型。提供错误类型的行为是未指定的:通常会抛出 ClassCastException,但它是特定于实现的。
ArrowButton 是一种特殊类型的 JButton,它呈现一个箭头。 ArrowButton 通常不会直接创建,而是某些组件会创建它来呈现带箭头的按钮。使用 ArrowButton 的组件是:JComboBox、JScrollBar 和 JSplitPane(用于分隔线上的按钮)。除了 按钮属性 之外,ArrowButton 还支持以下属性:
ArrowButton 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| ArrowButton.size |
Integer |
16 |
箭头按钮的首选大小。 |
JButton 使用 TEXT_FOREGROUND ColorType 绘制文本。除了 按钮属性 之外,JButton 还支持以下属性:
JButton 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| Button.defaultButtonFollowsFocus |
Boolean |
true |
默认 JButton 是否应更改为接收焦点的按钮。 |
JCheckBox 使用 TEXT_FOREGROUND ColorType 绘制文本。除了 按钮属性 之外,JCheckBox 还支持以下属性:
JCheckBox 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| CheckBox.icon |
Icon |
无效的 |
用于呈现支票的图标。 |
JComboBox 是一个复合组件,由以下子组件组成:
JComboBox 子组件
| Name |
Type |
Description |
| ComboBox.arrowButton |
SynthArrowButton |
呈现下拉指示器。 |
| ComboBox.list |
JList |
JList 用于呈现值。 |
| ComboBox.listRenderer |
Component |
用于 JComboBox 的 JList 的渲染器。 |
| ComboBox.popup |
JPopupMenu |
JPopupMenu 用于显示 JComboBox 的 ComboBox.list。 |
| ComboBox.renderer |
Component |
用于 JComboBox 的渲染器。这仅在渲染器是 UIResource 时设置。 |
| ComboBox.scrollPane |
JScrollPane |
包含 JList 的 JScrollPane。 |
| ComboBox.textField |
JTextField |
编辑。 |
JComboBox 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| ComboBox.showPopupOnNavigation |
Boolean |
false |
使用键盘导航时是否应显示 JPopupMenu。 |
JFileChooser
JFileChooser 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| FileChooser.cancelIcon |
Icon |
无效的 |
文件选择器的取消按钮上显示的图标。 |
| FileChooser.okIcon |
Icon |
无效的 |
文件选择器的确定按钮上显示的图标。 |
| FileView.directoryIcon |
Icon |
无效的 |
用于目录的图标。 |
| FileView.fileIcon |
Icon |
无效的 |
用于文件的图标。 |
| FileView.computerIcon |
Icon |
无效的 |
用于表示计算机的目录的图标。并非所有平台都会使用此图标。 |
| FileView.hardDriveIcon |
Icon |
无效的 |
用于表示硬盘驱动器根目录的图标。例如,在 Windows 上,这将在查看 C 驱动器时使用。 |
| FileView.floppyDriveIcon |
Icon |
无效的 |
用于表示软盘的图标。 |
| FileChooser.newFolderIcon |
Icon |
无效的 |
创建新文件夹的按钮使用的图标。 |
| FileChooser.upFolderIcon |
Icon |
无效的 |
导航到父文件夹的按钮使用的图标。 |
| FileChooser.homeFolderIcon |
Icon |
无效的 |
导航到当前用户主目录的按钮使用的图标。 |
| FileChooser.detailsViewIcon |
Icon |
无效的 |
切换详细文件列表视图的按钮使用的图标。 |
| FileChooser.listViewIcon |
Icon |
无效的 |
切换常规文件列表视图的按钮使用的图标,仅显示一个图标以及每个文件和目录的名称。 |
| FileChooser.viewMenuIcon |
Icon |
无效的 |
显示用于选择视图模式的弹出菜单的按钮使用的图标。 |
JInternalFrame
JInternalFrame 特定属性
| 属性 |
预期类型 |
DefaultValue |
Description |
| InternalFrame.icon |
Icon |
无效的 |
绘制的图标表示内部框架的系统图标。如果按下,将显示系统菜单。 |
JInternalFrameTitlePane
JInternalFrameTitlePane 是位于内部框架顶部的控制栏,类似于框架中的控制栏。
JInternalFrameTitlePane 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| InternalFrameTitlePane.maximizeIcon |
Icon |
无效的 |
绘制的图标指示最大化内部框架的能力。 |
| InternalFrameTitlePane.minimizeIcon |
Icon |
无效的 |
绘制的图标表示能够将内部框架恢复到之前的状态。 |
| InternalFrameTitlePane.iconifyIcon |
Icon |
无效的 |
绘制的图标指示最小化内部框架的能力。 |
| InternalFrameTitlePane.closeIcon |
Icon |
无效的 |
绘制的图标指示关闭内部框架的能力。 |
| InternalFrameTitlePane.titleSpacing |
Integer |
2 |
标题窗格上的按钮和标题之间的空间。 |
| InternalFrameTitlePane.buttonSpacing |
Integer |
2 |
标题窗格中按钮之间的空间。 |
| InternalFrameTitlePane.maxFrameIconSize |
Dimension |
16x16 |
将在标题窗格上呈现的框架图标的最大尺寸。如果图标大于此尺寸,它将按比例缩小。 |
| InternalFrameTitlePane.titleAlignment |
前导|尾随|中心 |
leading |
标题对齐。对于从左到右的组件方向,前导在左,尾随在右。对于从右到左的组件方向,前导在右,尾随在左。 |
JList 的将渲染器的名称设置为List.renderer。 JList 支持以下属性:
JList 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| List.rendererUseListColors |
Boolean |
true |
如果为真,则渲染器状态不会更新,并且文本颜色来自 JList 的 getSelectionBackground 和 getSelectionForeground 方法。如果为 false,则更新渲染器的状态并且颜色将改为来自样式。 |
| List.rendererUseUIBorder |
Boolean |
true |
如果为真,无论传入的边框如何,渲染器上的 setBorder 都会成功,否则渲染器上的 setBorder 只有在它是 Synth Border 时才会成功。 |
| List.cellHeight |
Integer |
-1 |
JList 的单元格高度。这是-1,不调用setFixedCellHeight。 |
Menu 类(JCheckBoxMenuItem、JMenu、JMenuItem 和 JRadioButtonMenuItem)都支持相同的属性集并且行为相似。每个组件由两个区域组成:组件特定的区域和 Region.MENU_ITEM_ACCELERATOR。 MENU_ITEM_ACCELERATOR 用于绘制加速器。两个区域都使用 TEXT_FOREGROUND ColorType 绘制文本。支持以下属性集:
菜单类公共属性
| 属性 |
预期类型 |
默认值 |
Description |
| prefix.acceleratorDelimiter |
String |
+ |
修饰符描述和密钥之间的字符串分隔符,例如 Ctrl <acceleratorDelimiter> X 。 |
| prefix.arrowIcon |
Icon |
无效的 |
绘制在文本右侧(或当 ComponentOrientation 从右到左时位于左侧)的图标。这通常仅为 JMenu 定义。 |
| prefix.checkIcon |
Icon |
无效的 |
绘制在文本左侧(或当 ComponentOrientation 从右到左时位于右侧)的图标。这通常仅为 JCheckBoxMenuItem 和 JRadioButtonMenuItem 定义以提供复选或单选按钮。 |
| prefix.margin |
Insets |
空insets (0, 0, 0, 0) |
JMenuItem 的边距。有关如何使用边距的详细信息,请参阅 javax.swing.AbstractButton#setMargin(java.awt.Insets) 的 javadoc。 |
| prefix.textIconGap |
Integer |
4 |
图标和文本之间的填充。有关如何使用它的详细信息,请参阅 javax.swing.AbstractButton#setIconTextGap(int) 的 javadoc。 |
Prefix 是以下之一:CheckBoxMenuItem、Menu、MenuItem 或 RadioButtonMenuItem。
JMenu 还支持以下属性:
JMenu 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| Menu.delay |
Integer |
200 |
设置菜单出现前的延迟。 |
| Menu.shortcutKeys |
整数[] |
KeyEvent.ALT_MASK |
用于快捷键的 KeyEvent 修饰符数组。 |
JOptionPane 是一个复合组件,可能包含许多子组件,它们是:OptionPane.button、OptionPane.label、OptionPane.comboBox、OptionPane.scrollPane、OptionPane.list、OptionPane.textField、OptionPane.iconLabel。
JOptionPane 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| OptionPane.buttonAreaBorder |
Border |
无效的 |
按钮区域周围的边框。 |
| OptionPane.buttonClickThreshhold |
Integer |
0 |
传递给创建的按钮 setMultiClickThreshhold。 |
| OptionPane.buttonOrientation |
Integer |
SwingConstants.CENTER |
按钮的布局方式,SwingConstants.LEFT、SwingConstants.RIGHT 或 SwingConstants.CENTER 之一(在从右到左的区域设置中将翻转)。 |
| OptionPane.buttonPadding |
Integer |
6 |
按钮之间的空间量。 |
| OptionPane.cancelIcon |
Icon |
无效的 |
取消按钮的图标。 |
| OptionPane.errorIcon |
Icon |
无效的 |
用于 ERROR_MESSAGE 的图标。 |
| OptionPane.informationIcon |
Icon |
无效的 |
用于 INFORMATION_MESSAGE 的图标。 |
| OptionPane.isYesLast |
Boolean |
false |
如果为真,“是”按钮会引导其他按钮,否则它会跟随其他按钮。 |
| OptionPane.questionIcon |
Icon |
无效的 |
用于错误 QUESTION_MESSAGE 的图标。 |
| OptionPane.minimumSize |
Dimension |
262x90 |
JOptionPane 的最小尺寸。 |
| OptionPane.noIcon |
Icon |
无效的 |
否按钮的图标。 |
| OptionPane.okIcon |
Icon |
无效的 |
确定按钮的图标。 |
| OptionPane.sameSizeButtons |
Boolean |
true |
是否所有按钮的大小都应该相同。 |
| OptionPane.separatorPadding |
Integer |
6 |
消息区域和分隔符之间的填充量。 |
| OptionPane.yesIcon |
Icon |
无效的 |
是按钮的图标。 |
| OptionPane.warningIcon |
Icon |
无效的 |
用于错误 WARNING_MESSAGE 的图标 |
JProgressBar
JProgressBar 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| ProgressBar.repaintInterval |
Integer |
50 |
不确定进度条重绘之间的毫秒数。 |
| ProgressBar.cycleTime |
Integer |
3000 |
当进度条不确定时,用于确定弹跳框每帧移动多远的毫秒数。 |
JRadioButton 使用 TEXT_FOREGROUND ColorType 绘制文本。除了 按钮属性 之外,JRadioButton 还支持以下属性:
JRadioButton 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| RadioButton.icon |
Icon |
无效的 |
用于呈现单选指示器的图标。 |
JScrollBar 是一个复合组件,由以下子组件组成:
JScrollBar 子组件
| Name |
Type |
Description |
| ScrollBar.button |
SynthArrowButton |
标识递增/递减按钮。 |
JScrollBar 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| ScrollBar.allowsAbsolutePositioning |
Boolean |
false |
如果为 true,则在轨道中单击鼠标中键会将轨道的位置设置为鼠标所在的位置。 |
| ScrollBar.maximumThumbSize |
Dimension |
4096x4096 |
最大拇指大小。 |
| ScrollBar.minimumThumbSize |
Dimension |
派生自 ScrollBar.thumbHeight |
最小拇指大小。如果未指定,则最小缩略图大小为 ScrollBar.thumbHeight 加上滚动条沿滚动条相对轴的插入和沿另一轴的 7。例如,如果您没有为滚动条指定 Insets,并且滚动条的方向是垂直的,则最小缩略图尺寸宽度为 ScrollBar.thumbHeight,高度为 7。 |
| ScrollBar.squareButtons |
Boolean |
false |
如果为真,滚动条按钮的宽度和高度将相等。 |
| ScrollBar.thumbHeight |
Integer |
14 |
当滚动条的方向为水平时的首选高度,或当滚动条的方向为垂直时的首选宽度。 |
所有分隔符类 JSeparator、JPopupMenu.Separator 和 JToolBar.Separator 使用相同的属性:
分隔符类常用属性
| 属性 |
预期类型 |
默认值 |
Description |
| Separator.thickness |
Integer |
2 |
垂直对齐分隔符的首选宽度,或水平对齐分隔符的首选高度。生成的首选大小将包括insets。 |
JToolBar.Separator 还支持以下属性:
JToolBar.Separator 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| ToolBar.separatorSize |
Dimension |
无效的 |
this 的值被传递给 javax.swing.JToolBar$Separator#setSeparatorSize(java.awt.Dimension) 方法。如果未指定,则不调用 setSeparatorSize。 |
JScrollPane 的独特之处在于它提供了一种在 JViewport 周围设置边框的方法,JViewport 从 setBorder 抛出 IllegalArgumentException。为了适应这一点,在 JScrollPane 上安装了一个特殊边框,它使用键 ScrollPane.viewportBorderInsets 中的insets。 SynthPainter 方法 paintViewportBorder 被调用来绘制 Viewport 的边框。
JScrollPane 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| ScrollPane.viewportBorderInsets |
Insets |
无效的 |
视口边框的insets。 |
JSplitPane 是一个复合组件,如果调用了 setOneTouchExpandable(true),它将包含一个分隔线和可能的两个按钮。这两个按钮将被命名为: SplitPaneDivider.leftOneTouchButton 和 SplitPaneDivider.rightOneTouchButton。
JSplitPane 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| SplitPane.centerOneTouchButtons |
Boolean |
true |
如果为真,则一键式按钮位于分隔线的中央。 |
| SplitPane.oneTouchButtonOffset |
Integer |
2 |
一键式按钮之间的距离。 |
| SplitPane.oneTouchButtonSize |
Integer |
6 |
尺寸适合制作一键式按钮。 |
| SplitPane.oneTouchExpandable |
Boolean |
无效的 |
如果非空,则将此值传递给 setOneTouchExpandable。 |
| SplitPane.size |
Integer |
6 |
分频器尺寸 |
JSlider
JSlider 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| Slider.thumbWidth |
Integer |
30 |
滑块拇指的宽度 |
| Slider.thumbHeight |
Integer |
14 |
滑块拇指的高度 |
| Slider.trackBorder |
Integer |
1 |
轨道边界的宽度 |
| Slider.paintValue |
Boolean |
true |
是否绘制滑块的当前值。 |
JTabbedPane
JTabbedPane 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| TabbedPane.tabRunOverlay |
Integer |
0 |
多行时重叠选项卡的像素数。 |
| TabbedPane.textIconGap |
Integer |
0 |
在选项卡上的图标和文本之间添加的填充。如果没有文本或图标,则不使用此值。 |
| TabbedPane.selectedTabPadInsets |
Insets |
空insets (0, 0, 0, 0) |
添加到所选选项卡的额外insets。 |
| TabbedPane.selectionFollowsFocus |
Boolean |
true |
如果为真,则选项卡式窗格的选择会随着用户使用鼠标浏览选项卡而改变。 |
JTable 将渲染器的名称设置为 Table.cellRenderer。 JTable 支持以下属性:
JTable 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| Table.gridColor |
Color |
无效的 |
用于网格的颜色。如果为 null,则使用样式中的前景。 |
| Table.rendererUseTableColors |
Boolean |
true |
如果为真,则渲染器状态不会更新,并且文本颜色来自 JTable 的 getSelectionBackground 和 getSelectionForeground 方法。如果为 false,则更新渲染器的状态并且颜色将改为来自样式。 |
| Table.rendererUseUIBorder |
Boolean |
true |
如果为真,无论传入的边框如何,渲染器上的 setBorder 都会成功,否则渲染器上的 setBorder 只有在它是 Synth Border 时才会成功。 |
| Table.rowHeight |
Integer |
-1 |
如果不是 -1,则对 JTable 调用 setRowHeight。 |
JTree 设置渲染器的名称为Tree.renderer,编辑器的名称为Tree.cellEditor。
JTree 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| Tree.collapsedIcon |
Icon |
无效的 |
折叠节点时使用的图标。 |
| Tree.drawHorizontalLines |
Boolean |
true |
如果真节点有一条水平线将它们连接到它们父节点的前缘。 |
| Tree.drawVerticalLines |
Boolean |
true |
如果为真,则从展开的节点向下绘制一条垂直线。 |
| Tree.expandedIcon |
Icon |
无效的 |
展开节点时使用的图标。 |
| Tree.leftChildIndent |
Integer |
0 |
这加上 Tree.rightChildIndent 占沿 y 轴的总空间,以从其父节点偏移节点。 |
| Tree.rightChildIndent |
Integer |
0 |
这加上 Tree.leftChildIndent 占沿 y 轴的总空间,以从其父节点偏移节点。 |
| Tree.rowHeight |
Integer |
-1 |
树的行高。 |
| Tree.scrollsHorizontallyAndVertically |
Boolean |
false |
如果为 false 并且需要发生滚动以容纳单元格,则它只会沿垂直轴发生,如果为 true,则滚动可能会沿水平轴和垂直轴发生。 |
| Tree.scrollsOnExpand |
Boolean |
true |
当节点展开时 JTree 是否应该滚动。 |
| Tree.linesStyle |
String |
|
树中线条的样式。 Synth 支持实线(空值)和虚线(“虚线”值)。可以通过向树中创建新的 SynthGraphicsUtils 和 绑定它 添加新样式。 |
JToggleButton 使用 TEXT_FOREGROUND ColorType 绘制文本。除了 按钮属性 之外,JToggleButton 还支持以下属性:
JToggleButton 特定属性
| 属性 |
预期类型 |
默认值 |
Description |
| ToggleButton.icon |
Icon |
无效的 |
用于呈现单选指示器的图标。 |
每个 Button 类(JButton、JCheckBox、JRadioButton、JToggleButton 和 SynthArrowButton)都支持一组相似的属性。这些属性是:
按钮类常用属性
| 属性 |
预期类型 |
默认值 |
Description |
| prefix.contentAreaFilled |
Integer |
true |
有关如何使用它的详细信息,请参阅 javax.swing.AbstractButton#contentAreaFilled(boolean) 的 javadoc。是否正确尊重此属性取决于绘制器。 |
| prefix.iconTextGap |
Integer |
如果未指定,则不调用 JButton.setIconTextGap。 |
图标和文本之间的填充。有关如何使用它的详细信息,请参阅 javax.swing.AbstractButton#setIconTextGap(int) 的 javadoc。 |
| prefix.margin |
Insets |
空insets (0, 0, 0, 0) |
JButton 的边距。有关如何使用边距的详细信息,请参阅 javax.swing.AbstractButton#setMargin(java.awt.Insets) 的 javadoc。 |
| prefix.textShiftOffset |
Integer |
0 |
文本和图标沿 x 轴和 y 轴从正常布局位置移动的量。这仅在按钮处于按下状态且没有按下图标时使用。 |
Prefix 是以下之一:Button、CheckBox、RadioButton 或 JToggleButton。
文本属性
文本类公共属性
| 属性 |
预期类型 |
默认值 |
Description |
| prefix.caretForeground |
Color |
#000000 |
插入符号的颜色。 |
| prefix.margin |
Insets |
空insets (0, 0, 0, 0)、EditorPane 和 TextPane (3, 3, 3, 3) |
文本组件的边距。 |
| prefix.caretBlinkRate |
Integer |
500 |
定义插入符号闪烁率的毫秒数。 |
Prefix 是以下之一:EditorPane、FormattedTextField、PasswordField、TextArea、TextField 或 TextPane。