在JavaFX中使用CSS时遇到麻烦

时间:2016-02-26 22:32:08

标签: java css javafx

我是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。

提前致谢!!

1 个答案:

答案 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;")
);