如何从方法内部上传CSS文件?

如何从方法内部上传CSS文件?,css,javafx,Css,Javafx,这是我的控制器类。我想从方法内部加载另一个css文件。我尝试了以下代码,但不幸的是没有工作。如何加载另一个CSS文件 @FXML private Button mbut1; @FXML private void menubut1(ActionEvent event) { mbut1.getStylesheets().add(getClass().getResource("dinner.css").toExternalForm());` 您可以通过3种方式从JavaFX导入CSS

这是我的
控制器
类。我想从方法内部加载另一个css文件。我尝试了以下代码,但不幸的是没有工作。如何加载另一个CSS文件

@FXML
private Button mbut1;
@FXML
private void menubut1(ActionEvent event) {    
    mbut1.getStylesheets().add(getClass().getResource("dinner.css").toExternalForm());`

您可以通过3种方式从JavaFX导入CSS:
  • 编译罐

    String css = DynamicCSS.class.getResource("/jarcss.css").toExternalForm();
    scene.getStylesheets().clear();
    scene.getStylesheets().add(css);
    
  • 文件

    File f = new File("filecss.css");
    f.toURI().toString() 
    
  • URL

    scene.getStylesheets().clear();
    scene.getStylesheets().add("http://www.jpedal.org/simon/dynamiccss/webcss.css");
    

    上述代码行将动态上载css。

    对于文件,请使用
    f.toURI().toString()
    而不是自己尝试构造URL的字符串形式。从技术上讲,这不是以3种方式导入css,因为您始终使用URL。您只是以不同的方式获取URL…是不是
    dinner.css
    与显示代码片段的类位于同一个包中?如果没有,它们都在哪个包中。这不起作用,因为你的“URL”丢失了,而且是很重要的一部分:协议!!!css存储在本地驱动器上。这里的“URL”需要什么获取链接到样式表的字符串URL的可观察列表[…]我们也可以使用本地文件添加css,但不是您这样做的方式。我已经测试过了,只是为了确保正确使用该文件是可行的,像这样使用它是行不通的。
    File file = new File("C:/test.css");
    scene.getStylesheets().add(file.getAbsolutePath());