2016-07-24 9 views
1

私はjavafxでCSSの使用を実験していました。私のプロジェクトは2つのシーン、2つのボタンでとてもシンプルでした。ボタンはシーン間で切り替わります。メインクラスを含むJavaファイルは以下の通りである:リソースが見つかりません - netbeans javafxエラー

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」:

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

このプログラムがうまく実行されますが、CSSファイルのISN」両方のシーンの背景色は変更されません。プログラムの実行中に、NetBeansは、「リソース 『viper.css』「が見つからないと言う誰がどのようにこのエラーを克服するために私を示唆でし

+0

あなたのファイルviper.cssは、クラスの両方をsrcディレクトリの下に置いて再度試してみてください –

+1

これはこれでした:StageAndScene/src/viper.cssこれでフォルダの上にそのCSSファイルがコピーされました。 n今それは:StageAndScene/viper.cssとそれを動作させる!もう一度ありがとう... –

答えて

0

あなたがする必要がありますあなたのviper.cssファイルのパスをチェックしてください。そのようにアクセスしている場合は、メインファイルとCSSファイルの両方が同じフォルダにある必要があります。

0

このような何かを試してみてください:。?

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

「getClass」のために何かをインポートする必要があるようです...どのファイルをインポートする必要がありますか? –

+0

'add'メソッドは' String'を期待しますが、 'getClass.getResource(" viper.css ")'は 'URL'を返します。したがって、 'toExternalForm()'を呼び出す必要があります。 – fabian

+0

はい、私はtoExternalForm()を追加することを忘れました。今すぐ追加します –

関連する問題