2016-07-24 12 views
1

Ich experimentierte die CSS-Verwendung mit Javafx. Mein Projekt war sehr einfach mit 2 Szenen, 2 Tasten. Die Tasten wechseln zwischen den Szenen.Ressource wird nicht gefunden - Netbeans Javafx Fehler

package stageandscene; 

import javafx.application.Application; 
import javafx.geometry.Pos; 
import javafx.scene.Scene; 
import javafx.scene.control.Button; 
import javafx.scene.layout.GridPane; 
import javafx.stage.Stage; 
import javafx.scene.control.Label; 

public class StageAndScene extends Application { 

Scene scene1, scene2; 
@Override 
public void start(Stage primaryStage) { 

    Button btn = new Button(); 
    Button btn2= new Button(); 

    btn.setText("Go to Scene 2"); 
    btn.setOnAction(e ->primaryStage.setScene(scene2)); 
    Label lebel= new Label("Hi there!! You are on scene 1"); 

    GridPane grid = new GridPane(); 
    grid.setHgap(20); 
    grid.setVgap(5); 
    grid.addRow(1, lebel,btn);  
    grid.setAlignment(Pos.CENTER); 
    scene1 = new Scene(grid, 300, 250); 
    scene1.getStylesheets().add("viper.css"); 

    Label lebel2= new Label("Hi there!! You are on scene 2"); 
    btn2.setText("Go to Scene 1"); 
    btn2.setOnAction(e ->primaryStage.setScene(scene1));    
    GridPane grid2 = new GridPane(); 
    grid2.setHgap(20); 
    grid2.setVgap(5); 
    grid2.addRow(1, lebel2,btn2);  
    grid2.setAlignment(Pos.CENTER); 
    scene2 = new Scene(grid2, 600, 550); 
    scene2.getStylesheets().add("viper.css"); 

    primaryStage.setTitle("Hello World!"); 
    primaryStage.setScene(scene1); 
    primaryStage.show(); 
} 
public static void main(String[] args) { 
    launch(args); 
} 


} 

„viper.css“ auf dem gleichen Projektordner, der wie folgt aussieht: die Java-Datei Hauptklasse enthält, wird weiter unten

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

dieses Programm läuft gut, aber die CSS-Datei isn‘ t funktioniert und die Hintergrundfarbe der beiden Szenen ist unverändert. und während das Programm ausgeführt wird, netbeans sagt „Ressource‚viper.css‘ist nicht‚gefunden Könnte jemand vorschlagen mich, wie dieser Fehler zu überwinden

+0

Sind Sie sicher, dass Ihre Datei viper.css im gleichen Paket wie diese ist Klasse? Versuchen Sie, sie beide unter src-Verzeichnis und versuchen Sie es erneut. –

+1

Nun, danke ... es war dies: StageAndScene/src/viper.css jetzt habe ich diese CSS-Datei bei auf Ordner kopiert. Ich mea Jetzt heißt es: StageAndScene/viper.css und verneige es !!! Nochmals vielen Dank ... –

Antwort

0

Sie müssen Überprüfen Sie den Pfad Ihrer viper.css-Datei Wenn Sie so darauf zugreifen, sollten Sie sowohl die Hauptdatei als auch die CSS-Datei im gleichen Ordner haben

0

Probieren Sie etwas wie folgt aus:.?

scene1.getStylesheets().add(getClass.getResource("viper.css").toExternalForm()); 
+0

Es scheint, als müsste ich etwas für diese 'getClass' importieren ... welche Datei soll ich importieren? –

+0

Die 'add' Methode erwartet' String', aber 'getClass.getResource (" viper.css ")' gibt 'URL' zurück. Daher muss 'toExternalForm()' aufgerufen werden. – fabian

+0

Ja, ich habe vergessen, zu ExternalForm() hinzuzufügen, ich werde es jetzt hinzufügen –