我试图使用JavaFX中的CSS文件更改文本字段内文本的颜色。问题是,无论我尝试什么,只有当我选择textField时才能更改颜色。
我已经尝试了文本字段的所有可更改变量,而且我也尝试分离textField的聚焦和非聚焦状态。我不知道可能的问题在哪里。
这是我的尝试: (-fx-secondary-light,-fx-text-primary是我定义的颜色。删除它们并使用十六进制值不会改变任何东西)
.textFieldSecondary {
-fx-background-color: -fx-secondary-light;
-fx-text-fill: -fx-text-primary;
-fx-prompt-text-fill: -fx-text-primary;
}
这将改变背景颜色,无论是否处于焦点状态,并且只有在我处于焦点状态时才会更改字体。
.textFieldSecondary {
-fx-background-color: -fx-secondary-light;
-fx-text-fill: -fx-text-primary;
-fx-prompt-text-fill: -fx-text-primary;
}
.textFieldSecondary:focused {
-fx-background-color: -fx-secondary-light;
-fx-text-fill: -fx-text-primary;
-fx-prompt-text-fill: -fx-text-primary;
}
同样的结果
.textFieldSecondary {
-fx-background-color: -fx-secondary-light;
-fx-text-fill: -fx-text-primary;
-fx-prompt-text-fill: -fx-text-primary;
}
如果我只关注它,它就起作用:如果我没有专注,它就完全平淡无奇,如果我专注了,所有东西都正确显示出来。
据我理解,第一种情况只应该改变非专注状态,第二种情况则应该同时改变两种状态,而第三种情况只应该改变专注状态。但是我做不到。
这是我的完整CSS文件:
* {
-fx-white: #FFFFFF;
-fx-primary-default: #333333;
-fx-primary-light: #696969;
-fx-secondary-default: #DB5A42;
-fx-secondary-light: #DE6953;
-fx-text-primary: #FFFFFF;
-fx-error-primary: #FF0000;
-fx-closeButton: #FF0000;
}
.buttonPrimary {
-fx-background-color: -fx-primary-default;
-fx-border-color: -fx-white;
-fx-border-width: 3;
-fx-border-radius: 5;
}
.buttonSecondary {
-fx-background-color: -fx-secondary-default;
-fx-border-color: -fx-secondary-light;
-fx-border-width: 3;
-fx-border-radius: 5;
}
.buttonExit {
-fx-background-color: -fx-closeButton;
-fx-background-radius: 0;
}
.buttonBack {
-fx-background-color: -fx-secondary-default;
-fx-background-radius: 0;
-fx-background-image: url('/Resources/backArrow.png');
-fx-background-position: center;
-fx-background-size: 231px 68px;
}
.textFieldSecondary {
-fx-background-color: -fx-secondary-light;
-fx-text-fill: -fx-text-primary;
-fx-prompt-text-fill: -fx-text-primary;
}
.textFieldSecondaryError {
-fx-background-color: -fx-secondary-light;
-fx-border-color: -fx-error-primary;
-fx-border-width: 2;
-fx-border-radius: 2;
-fx-text-fill: -fx-text-primary;
}
-fx-text-primary
和-fx-secondary-light
是什么? - Samuel Philipp.text-field { -fx-background-color: red; -fx-text-fill: blue; -fx-prompt-text-fill: green; }
也能按预期工作。 - Samuel Philipp