saz*_*y4o 12 java javafx textfield background-color javafx-2
我试图将我的TextField"colorBox0"的背景颜色更改为"value0",但它摆脱了边框.
这是我的代码的简化版本:
static Paint value0 = Paint.valueOf("FFFFFF");
TextField colorBox0;
colorBox0.setBackground(new Background(new BackgroundFill(value0, CornerRadii.EMPTY, Insets.EMPTY)));
Run Code Online (Sandbox Code Playgroud)
非常感谢任何帮助
谢谢
saz*_*y4o 13
我发现你可以通过使用to string方法和substring方法构造一个字符串和变量的css代码字符串,如下所示:
colorBox0
.setStyle("-fx-control-inner-background: #"+value0.toString().substring(2));
Run Code Online (Sandbox Code Playgroud)
查看(缩短的)默认JavaFX样式的TextField解释很多:
.text-input {
-fx-background-color: linear-gradient(to bottom, derive(-fx-text-box-border, -10%), -fx-text-box-border),
linear-gradient(from 0px 0px to 0px 5px, derive(-fx-control-inner-background, -9%), -fx-control-inner-background);
-fx-background-insets: 0, 1;
-fx-background-radius: 3, 2;
}
Run Code Online (Sandbox Code Playgroud)
因此背景是包含边框的分层背景.这种技术在整个JavaFX中使用很多.但是只修改一种颜色非常容易.
首先,我们需要为我们分配一个新的自定义样式类TextField:
TextField textField = new TextField();
textField.getStyleClass().add("custom");
Run Code Online (Sandbox Code Playgroud)
和CSS文件:
.custom {
-fx-control-inner-background: orange;
}
Run Code Online (Sandbox Code Playgroud)
如您所见,您不必覆盖文本字段的所有样式,仅覆盖用于背景的颜色变量就足够了.
尝试使用CSS设置颜色:
TextField colorBox0;
colorBox0.setStyle("-fx-background-color: white;");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32326 次 |
| 最近记录: |