【问题标题】:JAVAFX: Changing Stage window color with JFOENIXJAVAFX:使用 JFOENIX 更改舞台窗口颜色
【发布时间】:2017-02-12 04:51:58
【问题描述】:

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

我也想做同样的事情,但我没有找到任何关于它的话题。这里有人在使用 JFOENIX 并达到我想要的效果吗?怎么做?

【问题讨论】:

  • 您找到解决方案了吗?

标签: javafx


【解决方案1】:

看看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;
}

不幸的是,装饰器仍然是黑色的。我找不到任何额外的文档,所以我真的不能说你如何改变装饰器的颜色。希望能帮上忙。

【讨论】:

  • 你的回答帮助我改变了颜色。你添加了 String uri = getClass().getResource(CSS_FILE_NAME).toExternalForm(); scene.getStylesheets().add(uri) ?
  • 我可能将 css 文件添加到了错误的位置。无论如何,很高兴知道 css 可以正常工作,毕竟。
【解决方案2】:

我找不到任何直接更改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;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 2017-02-17
    • 1970-01-01
    • 2012-07-08
    • 2011-03-26
    • 2019-08-05
    • 2012-10-12
    相关资源
    最近更新 更多