JavaFX CSS 样式来自 Java
JavaFX CSS Styling from Java
我想为元素指定样式 class。
我有一个 css:
.text-field{
-fx-background-color: #333333;
-fx-background-insets: 0 -1 -1 -1, 0 0 0 0, 0 -1 3 -1;
-fx-text-fill: white;
-fx-prompt-text-fill: white;
-fx-font-family: Trebuchet MS;
-fx-font-size: 14px;
}
.text-field:focused{
-fx-focus-color: white;
-fx-prompt-text-fill: white;
-fx-highlight-fill: grey ;
}
我使用的 java 代码:
JFXTextField textField = new JFXTextField();
textField.getStylesheets().add(this.getClass().getResource("/css/TextField_Style_Sheet.css").toExternalForm());
textField.getStyleClass().clear();
textField.getStyleClass().add("text-field");
我遇到的问题是“:focused”样式没有应用到这个元素。
我做错了什么?
已经在元素中直接使用 scenebuilder 对其进行了测试,"Focus Color" 和 "UnFocus Color" 选项中的设置似乎覆盖了 text-field:focused 样式。
由于 JFXTextField 是在运行时创建的,因此默认的 Focus Color 似乎覆盖了 css text-field:focused 样式。
如何解决?
您将节点的所有样式 class 替换为单个样式 class:text-field
。
查看 modena.css 以了解 TextField
s 的样式在样式 class text-input
.
的规则中定义
这些规则也是唯一使用CSS变量-fx-focus-color
的地方TextField
秒。由于您确保不再应用这些规则,因此在修改 -fx-focus-color
变量时看不到任何可见的效果。
如果你确实想保留旧样式的部分,你不应该删除创建节点时添加的样式 classes 并且修改不适合你自己样式的属性.如果您清除样式 classes,您将负责从头开始重建外观。
将 focused
更改为 hover
像这样:
.text-field:悬停{
..}
我想为元素指定样式 class。
我有一个 css:
.text-field{
-fx-background-color: #333333;
-fx-background-insets: 0 -1 -1 -1, 0 0 0 0, 0 -1 3 -1;
-fx-text-fill: white;
-fx-prompt-text-fill: white;
-fx-font-family: Trebuchet MS;
-fx-font-size: 14px;
}
.text-field:focused{
-fx-focus-color: white;
-fx-prompt-text-fill: white;
-fx-highlight-fill: grey ;
}
我使用的 java 代码:
JFXTextField textField = new JFXTextField();
textField.getStylesheets().add(this.getClass().getResource("/css/TextField_Style_Sheet.css").toExternalForm());
textField.getStyleClass().clear();
textField.getStyleClass().add("text-field");
我遇到的问题是“:focused”样式没有应用到这个元素。 我做错了什么?
已经在元素中直接使用 scenebuilder 对其进行了测试,"Focus Color" 和 "UnFocus Color" 选项中的设置似乎覆盖了 text-field:focused 样式。 由于 JFXTextField 是在运行时创建的,因此默认的 Focus Color 似乎覆盖了 css text-field:focused 样式。
如何解决?
您将节点的所有样式 class 替换为单个样式 class:text-field
。
查看 modena.css 以了解 TextField
s 的样式在样式 class text-input
.
这些规则也是唯一使用CSS变量-fx-focus-color
的地方TextField
秒。由于您确保不再应用这些规则,因此在修改 -fx-focus-color
变量时看不到任何可见的效果。
如果你确实想保留旧样式的部分,你不应该删除创建节点时添加的样式 classes 并且修改不适合你自己样式的属性.如果您清除样式 classes,您将负责从头开始重建外观。
将 focused
更改为 hover
像这样:
.text-field:悬停{
..}