当前位置: 首页 > 知识库问答 >
问题:

在场景生成器中添加的CSS样式表未找到

王涵育
2023-03-14

我在通过场景构建器将CSS样式表应用到JavaFX应用程序时,在Netbeans中遇到了一个错误。

Netbeans中的错误消息为:

null/fxmldocument.css 2014年9月17日上午12:44:43 com.sun.javafx.css.styleManager loadStylesheetUnPrivileged

警告:找不到资源“fxmldocument.css”。

我所做的只是添加位于fxmldocument.fxml文件所在的源文件夹中的css文件。

FXML的开头如下所示:

<AnchorPane id="AnchorPane" fx:id="mainWindowPane" focusTraversable="true" stylesheets="@FXMLDocument.css" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="a.b.c.d.ui.FXMLDocumentController">
@Override
public void start(Stage stage) throws Exception {

    try {
        setUserAgentStylesheet(STYLESHEET_MODENA);
        FXMLLoader loader = new FXMLLoader();
        Parent root = (Parent) loader.load(getClass().getResourceAsStream("ui/ParentWindow.fxml"));
        final ParentWindowController controller = (ParentWindowController) loader.getController();

        stage.addEventHandler(WindowEvent.WINDOW_SHOWN, controller::handleWindowShownEvent);
        stage.addEventHandler(WindowEvent.WINDOW_SHOWING, controller::handleWindowShowingEvent);
        stage.addEventHandler(WindowEvent.WINDOW_CLOSE_REQUEST, controller::handleWindowClosingRequestedEvent);

        Scene scene = new Scene(root);
        stage.setScene(scene);
        stage.setResizable(false);
        stage.toFront();
        stage.setTitle("Sample Code");
        stage.getIcons().add(new Image(getClass().getResourceAsStream("resources/images/Logo.jpg")));
        stage.show();
    } catch (IOException iOException) {
        iOException.printStackTrace();
    }
}
scene.getStylesheets().setAll(
getClass().getResource("ui/FXMLDocument.css").toExternalForm()
);

共有1个答案

益何平
2023-03-14

我正在研究mayne的一个实现。我使用特定于css的包,并通过..\css\backgroundc.css指向它

注意..\它指向这个位置

如果css与fxml在同一个包中,只需添加..\fxmldocument.css即可解决问题

如果您决定通过代码初始化它,您可以使用:例如,使用自定义CSS设计初始化场景

 scene.getStylesheets().setAll(
                    getClass().getResource(CSS_LOCATION).toExternalForm()
            );

例如,对于CSS_LOCATION,可能是:

/myapp/ui/css/style.css
node.setStyle("-fx-background-color:RED;");
 类似资料:
  • 我在Scene Builder for Java8中创建了。我的文件存储在中。我在中连接样式表,然后就可以了。但是在启动应用程序之后,我得到了错误的异常:。 怎么解决这个?我需要每次在中重命名路径到? 加载FXML:

  • 我现在在Scene Builder中打开了项目,并在anchor窗格中添加了一个controller类,它为我自动完成了该窗格,因为它识别出我有一个controller类,并且看起来正确。 但是,当我返回到我的.fxml文件时,它将我的控制器标签用红色表示为错误,并表示还表示 我该怎么做呢?我完全按照教程... 项目文件结构如下: ProjectX>src>ProjectX(包)>controll

  • 我想将css文件链接到我的应用程序。在我的fxml文件中,我使用以下命令: ...当我在scenebuilder中打开fxml文件时,我可以看到一个样式化的预览。但是,当我尝试运行应用程序时,出现了一个错误: java.net.MalformedURL异常:无协议:.../stylesheet1.css 所以我用这种方法测试它: 现在它是反过来的-应用程序启动并应用css,但我没有看到场景构建器中

  • 我希望此图表显示在场景生成器上。怎么可能。。??

  • 我对屏幕生成器有一些问题 对于某些fxml,它会在加载后发生creash。我尝试了很多次运行它,但它阻塞了,我必须终止这个进程。 fxml正常,内容在我的应用程序中正确显示。下面是导致场景生成器崩溃的FXML示例。

  • 我运行wmii在linux和在想我自己,如果你可以运行javafx场景生成器从终端?