繁体   English   中英

JavaFX部署的CSS样式存在应用程序故障

[英]JavaFX deployed application troubles with CSS styles

我用一些资源文件(在项目文件夹“ src / main / resources”中)创建了JavaFX Maven应用程序。 该应用程序在NetBeans环境中运行良好。 但是,当构建独立的JAR文件并将其复制到另一个文件夹时,该应用程序的可视项(组合框,文本字段,VBox等)无法正确显示(不同的颜色,错误的填充等)。

例如, 此屏幕截图显示了正确的可视化效果(在Netbeans环境中获得),而该屏幕截图则未显示。 在这里,区别在于ComboBox悬停项目的颜色(错误版本中为白色)和ComboBox条的大小。 这些样式存在于CSS文件中(在“ src / main / resources / styles”中)。

我不明白为什么CSS无法在部署的JavaFX Maven应用程序中正确应用。 某些样式仍在起作用(例如Button样式),而其他样式(例如ComboBoxes文本)则不起作用。

我应该怎么做才能防止这种情况发生?

更新:

该CSS文件存在于JAR文件中,因为某些样式(例如Button样式)已正确加载到应用程序中(NetBeans外部)。 这是我用来将样式表加载到JavaFX Scene中的代码:

scene.getStylesheets().add(this.getClass().getResource("/styles/styles.css").toExternalForm());

“ styles.css”文件保存在“ src / main / resources / styles / styles.css”中。

例如,在Java代码中采用以下样式:

Button save = new Button("Save");
save.getStyleClass().add("primary-button"); // -> It works

无效的样式包括没有直接样式类的样式。 它们会影响所有ComboBox,CheckBox等。例如:

.combo-box-popup {
    -fx-min-width: 555px;
}

.combo-box-popup .list-view {
    -fx-min-width: 555px;
}

.combo-box-base  {
    -fx-background-color: transparent, transparent, transparent, white;
    -fx-border-width: 1;
    -fx-border-color: #666666;
    -fx-font-family: "Roboto Light";
    -fx-font-size: 14px;
    -fx-fill: #666666;
}

.combo-box .arrow {
    -fx-background-color: #979797;
    -fx-background-radius: 0;
}

.combo-box .arrow-button {
   -fx-background-color: #d8d8d8;
   -fx-background-radius: 0;
}

.combo-box .arrow-button:hover {
    -fx-background-color: #e1e1e1;
    -fx-background-radius: 0;
}

.combo-box-popup .list-view .list-cell:filled:selected, .combo-box-popup .list-view .list-cell:filled:selected:hover {
    -fx-background-color: #6995df;
}

.combo-box-popup .list-view .list-cell:filled:hover {
    -fx-background-color: #f3f3f3;
}

Netbeans IDE版本:8.0.1。

JavaFX版本:8(来自JDK 1.8.0_25)。

计算机JRE版本:1.8.0_25。

我希望这有助于理解问题。

在CSS文件中进行了一些更改之后,我意识到JavaFX 8更改了CSS中的某些功能(例如背景),并添加了一些新的默认样式(例如ComboBoxes中的白色文本)。

最后,我进行了更改,并在CSS文件中添加了一些样式。 现在,CSS运行良好。 谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM