2016-08-15 72 views
2

我得到这个错误:JavaFX的CSS解析错误

com.sun.javafx.css.parser.CSSParser parse WARNING: CSS Error parsing file:/filepath/bin/: Expected LBRACE at [-1,-1]

我的代码如下:

import javafx.application.Application; 
import javafx.geometry.Insets; 
import javafx.scene.Scene; 
import javafx.scene.layout.GridPane; 
import javafx.scene.layout.StackPane; 
import javafx.scene.text.Text; 
import javafx.stage.Stage; 

public class Main extends Application { 

public static void main(String[] args) { 
    launch(args); 
} 

public void start(Stage primaryStage) throws Exception { 
    StackPane root = new StackPane(); 
    Scene mainScene = new Scene(root, 800, 600); 
    mainScene.getStylesheets().clear(); 
    mainScene.getStylesheets().add("//stylesheet.css"); 
    primaryStage.setTitle("Not Facebook"); 
    primaryStage.setScene(mainScene); 
    primaryStage.show(); 
    //loadGame(primaryStage); 

} 

public void loadGame(Stage primaryStage) { 
    GridPane grid = new GridPane(); 
    grid.setHgap(0); 
    grid.setVgap(0); 
    grid.setPadding(new Insets(10, 10, 10, 10)); 
    Text text = new Text("Hello"); 
    grid.add(text, 5,5); 
    Scene gameScene = new Scene(grid, 800, 600); 
    primaryStage.setScene(gameScene); 
} 

} 
.root { 
    -fx-background-color: #333333; 
} 

我已经搜查,但没有人有同样的问题,我不不知道为什么会发生这种情况。

回答

1

样式表的路径错误。

使用

mainScene.getStylesheets().add("stylesheet.css"); 
           ^^ 

,而不是

mainScene.getStylesheets().add("//stylesheet.css"); 
           ^^ 

注意,你甚至不需要一个领先/访问相对于应用程序的根类路径的样式表。来自JavaDoc

The URL is a hierarchical URI of the form [scheme:][//authority][path]. If the URL does not have a [scheme:] component, the URL is considered to be the [path] component only. Any leading '/' character of the [path] is ignored and the [path] is treated as a path relative to the root of the application's classpath.