JAVAFX:使用JFOENIX更改舞台窗口颜色

时间:2017-02-12 04:51:59

标签: javafx

我一直在使用JFOENIX库来制作材料设计桌面应用程序,而且从JFOENIX演示中,我看到舞台窗口改为如下图所示:

enter image description here

我想做同样的事,但我没有发现任何关于它的话题。这里的任何人都在使用JFOENIX并实现我想要的一样吗?怎么做?

2 个答案:

答案 0 :(得分:3)

看看this demo。您可以使用以下代码创建JFoenix装饰器:

import com.jfoenix.controls.JFXDecorator;

Parent root = something; // your root container

JFXDecorator decorator = new JFXDecorator(stage, root);
decorator.setCustomMaximize(true);
Scene scene = new Scene(decorator, 500, 500);

这将导致黑色装饰器。看了this css file后我想你可以用以下的css代码改变颜色:

.jfx-decorator {
    -fx-decorator-color: blue;
}

.jfx-decorator .jfx-decorator-buttons-container {
    -fx-background-color: -fx-decorator-color;
}

.jfx-decorator .resize-border {
    -fx-border-color: -fx-decorator-color;
    -fx-border-width: 0 4 4 4;
}

不幸的是,装饰者仍然是黑色的。我找不到任何其他文档,所以我真的不能说你如何改变装饰颜色。我希望我能提供帮助。

答案 1 :(得分:1)

我找不到直接更改jfx-decorator颜色的直接方法,所以我使用了以下代码,这对我有用!

在java代码中,

Stage stage = new Stage();
Parent root = FXMLLoader.load(getClass().getResource("FXML_FILE"));
/*...*/
JFXDecorator decorator = new JFXDecorator(stage , root);
decorator.setCustomMaximize(true);                  
String uri = getClass().getResource("CSS_PATH").toExternalForm();
Scene scene = new Scene(decorator);
scene.getStylesheets().add(uri) ;
stage.setScene(scene);
stage.show();

在css文件中,

.jfx-decorator {
    -fx-decorator-color: #272727;
}

.jfx-decorator .jfx-decorator-buttons-container {
    -fx-background-color: -fx-decorator-color;

}

.jfx-decorator .resize-border {
    -fx-border-color: -fx-decorator-color;
    -fx-border-width: 0 2 2 2;
}