ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaFX ComboBox CSS样式

2019-10-26 22:03:18  阅读:1276  来源: 互联网

标签:javafx combobox css java


我正在使用JavaFX FXML构建一个小型应用程序,并且试图实现一些具有特定样式的简单CSS.

我对Combobox元素有疑问.实际上,默认情况下其颜色为灰色:

enter image description here

我想将其设置为白色(或透明),并保留边框,以与“文本字段”匹配相同的样式.因此,我尝试将背景色设置为透明,但有一个副作用:边框也变得透明!

enter image description here

这是我添加的CSS:

.root {
    -fx-font-size: 11pt;
    -fx-font-family: "Verdana";
    -fx-background: #FFFFFF;
}

.normal-label {
    -fx-text-fill: #005EB8;
}

.normal-text-field {
    -fx-text-fill: #333333;
}

.combo-box {
    -fx-background-color: transparent;
}

我一点都不习惯CSS编写,所以也许我完全错过了一些东西.组合框没有定义边框吗?因此,我必须重写边框并找出“文本字段”的边框是什么?

解决方法:

来自ComboBoxBase的ComboBox inherits its CSS style.

The ComboBox control has all the properties and pseudo‑classes of
ComboBoxBase.

ComboBoxBase的默认CSS样式类定义为:

.combo-box-base {
    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, -fx-body-color;
    -fx-background-insets: 0 0 -1 0, 0, 1, 2;
    -fx-background-radius: 3px, 3px, 2px, 1px;
    -fx-padding: 0.333333em 0.666667em 0.333333em 0.666667em; /* 4 8 4 8 */
    -fx-text-fill: -fx-text-base-color;
    -fx-alignment: CENTER;
    -fx-content-display: LEFT;
}

您可以像下面这样覆盖此样式类:

.combo-box-base {
    -fx-background-color: -fx-shadow-highlight-color, -fx-outer-border, -fx-inner-border, white;
    -fx-background-insets: 0 0 -1 0, 0, 1, 2;
    -fx-background-radius: 3px, 3px, 2px, 1px;
}

此样式类仅将内部设置为白色,实际上未修饰边框(删除最后两个属性,然后您将获得纯白色的无边框ComboBox).

注意:

如果仅使用ComboBox,则覆盖.combo-box-base或.combo-box样式类是等效的.

答案中使用.combo-box-base样式类而不是另一个的原因是,还有其他控件也继承了.combo-box-base样式类,例如ColorPickerDatePicker.覆盖.combo-基于框的基础上,所有这些控件共享相同的样式,从而实现了高度统一的设计.

标签:javafx,combobox,css,java
来源: https://codeday.me/bug/20191026/1939729.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有