【问题标题】:JavaFX CSS doesn't get deployedJavaFX CSS 未部署
【发布时间】:2021-02-09 23:15:37
【问题描述】:

我有问题。在我的 JavaFX 项目中,我在 MainApplication 类中创建了以下方法:

private VBox createMenuButton(String menuItemName) {

    final Background focusBackground = new Background( new BackgroundFill(Color.rgb(255,177,86), CornerRadii.EMPTY, Insets.EMPTY ));
    final Background unfocusBackground = new Background( new BackgroundFill(Color.rgb(226,129,15), CornerRadii.EMPTY, Insets.EMPTY ));

    // Vertical box
    VBox btnMenu = new VBox();
    btnMenu.setId("btnMenu");
    btnMenu.setAlignment(Pos.BASELINE_LEFT);
    btnMenu.setSpacing(10);
    btnMenu.setMinHeight(30);
    btnMenu.setMinWidth(160);

    // Label
    Label lblMenuButton = new Label(menuItemName);
    lblMenuButton.setFont(new Font("Roboto", 20));
    lblMenuButton.setTextFill(Color.WHITE);

    // White underline
    Rectangle underline = new Rectangle ();
    underline.setHeight(1);
    underline.setWidth(160);
    underline.setFill(Color.WHITE);

    btnMenu.getChildren().addAll(lblMenuButton, underline);

    return btnMenu;
}

这会创建一个VBox,其中一个Label 在该标签的内部和下方是一条白线。然后我想让它在你悬停在它上面时改变颜色,所以我做了以下简单的 CSS (menu.css):

#btnMenu:hover {
    background-color: #ffb156;
}

这是整个 css 文件,所以我觉得还可以。最后,我像这样导入 css 文件:

scene.getStylesheets().add(MainApplication.class.getResource("stylesheets/menu.css").toExternalForm());

但这给了我一个NullPointerException。这是完整的项目树:

如您所见,CSS 文件夹和文件不在正在部署的target 文件夹中,因此出现了问题。我不知道如何找到有关该错误的更多详细信息,但在谷歌搜索后它可能是一个解析错误。问题是我的css看起来没有错,也不算多,所以可以直接看到错误。

谁能告诉我为什么我的 CSS 没有部署?

【问题讨论】:

    标签: java css javafx


    【解决方案1】:

    Maven 定义了一个 "standard directory layout",其中包括:

    • 生产 Java 源文件在 src/main/java
    • 生产资源归src/main/resources

    默认情况下,基本上所有在src/main/java 目录下不以.java 结尾的文件都会被忽略。您可以使用 POM 文件中的某些配置来更改此行为,但我会坚持 Maven 约定,除非您需要这样做(或者只是真的不同意它们并且任何其他团队成员同意您)。请注意,Gradle 对源和资源采用了相同的约定。

    如果您希望您的 CSS 文件包含在输出中,同时将其保存在您现在拥有的同一个包中,那么您应该将文件移动到 src/main/resources/practicumopdracht/stylesheets/menu.css

    【讨论】:

      猜你喜欢
      • 2018-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多