FTPC可以通过将层叠样式表(CSS)应用于Form,可以为应用程序创建定制的外观,而无需更改应用程序的实现。放置在应用样式表的Form上的所有Swing和Plant Operations GUI控件都将根据样式表进行定制。
CSS定义可以存储为List或应用程序表。
如果希望使用StyleSheet格式化窗体,需要确保在设置窗体时Form控件名不包含下划线(_)。
通过调用Form.applyStylesheet(字符串)方法应用StyleSheet。字符串参数是作为字符串的整个CSS定义,而不是保存CSS定义的List或应用程序表的名称。也可以将CSS定义分配给通过调用自定义Form打开的表单和对话框。applyStylesheet(String、Boolean)的方法:
- 如果为true,那么对话框将使用与其父窗体相同的样式配置进行定制。这是默认值。
- 如果为false,则对话框不是自定义的。
定义样式表
语法:
<selector> {
property1:value;
property2:value;
…
}
支持选择器
- 元素节点选择器(Element Node Selector)
具有语法“CLASSNAME”,并按类名选择单个图形组件。例如,在下面的节点中,单个图形组件是一个平面按钮:
JButton, FlatButton{
cursor:default;
style:flat;
border-style:raised-3d;
height:25;
text-align:middlecenter;
font-style:plain;
}
- 子选择器(Child Selector)
具有语法“PARENT>CHILD”,并选择包含在另一个图形组件中的图形组件。例如,在下面的节点中,一个面板包含在一个嵌入式表单中:
EmbeddedForm > Panel {
border-style:etched;
}
- 条件选择器(Conditional Selector)
选择符合条件的所有图形组件。目前,支持的条件是class条件和ID条件。这个选择器有语法”.class”或” #id “,分别。下面的示例定义了嵌入式表单上特定状态栏的样式。
EmbeddedForm#efStatusBar > * > Edit{
border-style:fixed-3d;
}
可以使用星号(*)表示通用选择器。在上面的示例中,*号表示该规则适用于状态栏的任何容器中Edit类型的所有子元素。
- 任意节点选择器(Any Node Selector)
选择所有组件并使用关键字“*”。例如,下面的CSS部分定义了所有组件中使用的颜色:
* {
foreground-color:rgb(0,51,153);
background-color: rgb(236,233,216);
disabled-color: rgb(236,233,216);
border-style:none;
}
注意:在定义样式表时,标识符(包括选择器中的元素名称、类和id)不能以连字符(-)或数字开头。
可以定义的CSS属性以及将受影响的Form对象和控件
CSS Property | Affected Object/Control | CSS Property | Affected Object/Control |
above-tolerance-color | ScalesControl | font-family | CControl, JComponent |
alt-rowcolor | DsGrid | font-size | CControl, JComponent |
alternate-rowcolors | DsGrid | font-style | CControl, JComponent |
background-color | CControl, JComponent | foreground-color | CControl, JComponent |
below-tolerance-color | ScalesControl | header-borderstyle | DsGrid |
bgimage | DsGrid, FlatBase, JButton, JCheckBox, JLabel, JRadioButton | header-fontfamily | DsGrid |
bgimage-align | FlatBase | header-fontsize | DsGrid |
border-color | CControl, JComponent | header-fontstyle | DsGrid |
border-style | Edit, Form, JComponent, ListBox, MaskEdit, Panel, PictureBox, ProgressBar, TreeView | height | CControl, JComponent |
bounds | CControl | in-tolerance-color | ScalesControl |
cell-selection | DsGrid | layout-style | Form, Panel |
cell-selection-background | DsGrid | location | FlatButton |
cell-selection-bordercolor | DsGrid | nominal-marker-color | ScalesControl |
cell-selection-foreground | DsGrid | row-height | DsGrid |
column-resizing | DsGrid | row-selection | DsGrid |
column-width | DsGrid | row-selection-background | DsGrid |
cursor | CControl, JComponent | row-selection-border | DsGrid |
disabled-color | CControl, JComponent | row-selection-bordercolor | DsGrid |
dock | CControl | row-selection-foreground | DsGrid |
dosagebar-bgcolor | ScalesControl | size | CControl, JComponent |
dosagebar-fgcolor | ScalesControl | style | ComboBox, JComponent, FlatBase |
enabled | CControl | text-align | FlatBase |
flow-alignment | Form, Panel | visible | CControl |
focused | CControl | width | CControl |
z-order | CControl |
CSS可接收属性值
- above-tolerance-color
- bgimage
bgimage:url(db:image); /*image 对象*/
bgimage:url(http:image.jpg);
- bgimage-align
topleft|topcenter|topright|middleleft|middlecenter|middleleft|bottomleft|bottomcenter|bottomright
- text-align
该属性值存在BUG,不能配置FlatButton的text-align属性。