2016-08-15 102 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.