Rob*_*tin 1 java calendar javafx datepicker
我目前正在尝试将 DatePicker 的可编辑设置为 false,因此无法更改该值。使用以下仅禁用文本字段,但仍允许通过单击日历按钮更改日期(setEditable 用于权限,因此我可以根据登录情况启用/禁用):
exampleDatePicker.setEditable(user.getGroup().equals(admin));
Run Code Online (Sandbox Code Playgroud)
有没有办法禁用 DatePicker 上的日历按钮?我不想使用 setDisable,因为我仍然希望该字段是可读的,而且我无法更改禁用的 CSS,因为我有其他禁用的 DatePicker,我希望它们变灰。
小智 6
对于未来的搜索,这是我所做的:
dtpDate.setDisable(true);
dtpDate.setStyle("-fx-opacity: 1");
dtpDate.getEditor().setStyle("-fx-opacity: 1");
Run Code Online (Sandbox Code Playgroud)
要禁用它(即使其表现得像禁用一样),请调用setDisable(...):
exampleDatePicker.setDisable(! user.getGroup().equals(admin));
Run Code Online (Sandbox Code Playgroud)
要更改默认禁用外观的外观(我同意这很难阅读),您仍然可以使用 CSS,但要特别选择它DatePicker。最简单的方法可能是使用 CSS 伪类:
PseudoClass notAuthenticated = PseudoClass.getPseudoClass("not-authenticated");
exampleDatePicker.setDisable(! user.getGroup().equals(admin));
exampleDatePicker.pseudoClassStateChanged(notAuthenticated, ! user.getGroup().equals(admin));
Run Code Online (Sandbox Code Playgroud)
然后在您的外部 CSS 中,您可以为 设置样式.date-picker:not-authenticated,例如:
.date-picker:not-authenticated, .date-picker:not-authenticated > .text-field {
-fx-opacity: 0.85 ;
}
Run Code Online (Sandbox Code Playgroud)
我建议让日期选择器看起来与真正活跃(未禁用)的日期选择器略有不同,否则它可能会让用户感到困惑。
| 归档时间: |
|
| 查看次数: |
6974 次 |
| 最近记录: |