我是JavaFX编码的新手,我正在尝试创建两个复选框,允许用户在登录/注销时记住他的用户名/密码。编码这不是问题;我很难弄清楚复选框(我希望密码框在未选中用户名框时显示为灰色)。这是一段代码:
CheckBox rememberUsername = new CheckBox("Remember username?");
CheckBox rememberPassword = new CheckBox("Remember password?");
rememberPassword.setStyle("-fx-opacity: 1");
我阅读了一篇关于让CSS工作的在线指南,它说要提取: 我做了C:\ Program Files \ Java中的/jdk1.8.x/jre/lib/ext/jfxrt.jar。我正在使用Eclipse,当我加载程序时,就好像根本没有CSS。
提前致谢!!
答案 0 :(得分:1)
禁用控件时,它会将不透明度设置为0.5(默认情况下),并使控件无响应。不透明度0.5看起来类似于灰色控制。
rememberPassword.disableProperty().bind(
rememberUsername.selectedProperty().not()
);
这可能就是你真正想要做的,而不仅仅是修改CSS样式以使控件变灰。
如果您不想在灰显时禁用该控件,则可以执行以下操作:
rememberPassword.opacityProperty().bind(
Bindings.when(
rememberUsername.selectedProperty()
).then(1).otherwise(0.5)
);
而且,在同样不太可能发生的情况下,您希望在不禁用它的情况下将其灰显,并且您希望为此使用内联CSS,您可以这样做:
rememberPassword.styleProperty().bind(
Bindings.when(
rememberUsername.selectedProperty()
).then("fx-opacity: 1;").otherwise("-fx-opacity: 0.5;")
);