组件特定属性

Synth 的外观以及某种程度上的感觉可以通过组件特定属性进行定制。这些属性可从 合成风格#get 访问。有关如何在合成器配置文件中指定这些属性的示例,请参阅 合成文件格式

该文件指定了每个值要采用的预期类类型。提供错误类型的行为是未指定的:通常会抛出 ClassCastException,但它是特定于实现的。

ArrowButton

ArrowButton 是一种特殊类型的 JButton,它呈现一个箭头。 ArrowButton 通常不会直接创建,而是某些组件会创建它来呈现带箭头的按钮。使用 ArrowButton 的组件是:JComboBox、JScrollBar 和 JSplitPane(用于分隔线上的按钮)。除了 按钮属性 之外,ArrowButton 还支持以下属性:

ArrowButton 特定属性
属性 预期类型 默认值 Description
ArrowButton.size Integer 16 箭头按钮的首选大小。

JButton

JButton 使用 TEXT_FOREGROUND ColorType 绘制文本。除了 按钮属性 之外,JButton 还支持以下属性:

JButton 特定属性
属性 预期类型 默认值 Description
Button.defaultButtonFollowsFocus Boolean true 默认 JButton 是否应更改为接收焦点的按钮。

JCheckBox

JCheckBox 使用 TEXT_FOREGROUND ColorType 绘制文本。除了 按钮属性 之外,JCheckBox 还支持以下属性:

JCheckBox 特定属性
属性 预期类型 默认值 Description
CheckBox.icon Icon 无效的 用于呈现支票的图标。

JComboBox

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

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

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

JRadioButton 使用 TEXT_FOREGROUND ColorType 绘制文本。除了 按钮属性 之外,JRadioButton 还支持以下属性:

JRadioButton 特定属性
属性 预期类型 默认值 Description
RadioButton.icon Icon 无效的 用于呈现单选指示器的图标。

JScrollBar

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 当滚动条的方向为水平时的首选高度,或当滚动条的方向为垂直时的首选宽度。

Separators

所有分隔符类 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

JScrollPane 的独特之处在于它提供了一种在 JViewport 周围设置边框的方法,JViewport 从 setBorder 抛出 IllegalArgumentException。为了适应这一点,在 JScrollPane 上安装了一个特殊边框,它使用键 ScrollPane.viewportBorderInsets 中的insets。 SynthPainter 方法 paintViewportBorder 被调用来绘制 Viewport 的边框。

JScrollPane 特定属性
属性 预期类型 默认值 Description
ScrollPane.viewportBorderInsets Insets 无效的 视口边框的insets。

JSplitPane

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

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

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

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。