2017-12-26 9 views
0

JavaFX를 사용하여 프로그램을 만들려고하는데, 불행히도이 문제로 인해 지난 몇 시간 동안 미치게되었습니다.Windows를 전환 한 후 JavaFX가 CSS 클래스를 찾을 수 없습니다.

나는 그것을 설명하기위한 작은 프로그램을 만들었습니다.

프로그램은 Main.java으로 시작합니다 : UI를 부팅합니다.

public class SanicController { 

    @FXML 
    public void goesToKnakles(ActionEvent event) { 
     try { 
      HBox root = (HBox)FXMLLoader.load(getClass().getResource("knakles.fxml")); 
      Stage stage = (Stage) ((Node)event.getSource()).getScene().getWindow(); 
      Scene s = new Scene(root); 
      s.getStylesheets().add(getClass().getResource("app.css").toExternalForm()); 
      stage.setScene(s); 
      stage.show(); 
     } 
     catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

간단한만큼 지금까지 다음 UI에

public class Main extends Application { 

    @Override 
    public void start(Stage primaryStage) { 
     try { 
      VBox root = (VBox)FXMLLoader.load(getClass().getResource("sanic.fxml")); 
      Scene scene = new Scene(root); 
     scene.getStylesheets().add(getClass().getResource("app.css").toExternalForm()); 
     primaryStage.setScene(scene); 
     primaryStage.setTitle("sanic"); 
     primaryStage.show(); 
     primaryStage.sizeToScene(); 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 
} 

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

는 다른 페이지로 우리를 인도 단순한 버튼이 있습니다.

public class KnaklesController { 

    @FXML 
    private HBox box; 

    public void initialize() { 
     try { 
      Label l = new Label("ur my best friend"); 
      l.getStylesheets().addAll("test"); 
      this.box.getChildren().add(l); 
     } 

     catch(Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

나는 단지 HBox의를 가지고 있고 그것에 레이블을 추가 할이 새 페이지에서 , 나는이 컨트롤러를 가지고있다.

Dec 27, 2017 12:01:48 AM com.sun.javafx.css.StyleManager loadStylesheetUnPrivileged 
WARNING: Resource "test" not found. 

그리고 마지막으로, 여기 내 CSS입니다 :

HBox{ 
    -fx-background-color: #FF00FF; 
} 

#test { 
    -fx-background-color: #FFFFFF; 
} 

사람이 왜 아는 분은 레이블은 그러나 나는 그것을에 스타일을 적용 할 때, 이클립스 나에게 다음과 같은 오류를 알려줍니다 추가됩니다 프로그램이 적절한 CSS 클래스를 찾을 수 없습니까? 이것은 실제 프로그램의 다른 부분에 실제로 CSS 클래스를 성공적으로 적용했기 때문에 매우 혼란 스럽습니다 ...

누구든지이 문제를 해결할 시간이 있으면 매우 감사 할 것입니다.

+0

추가하지 않은 이유 '입니다입니다. 'Hbox 클래스에? –

답변

4

이 좋아 신경 쓸 나는 빌어 먹을 바보, 그것은

getStyleClass() 

하지

getStylesheets() 
+0

자신의 대답을 수락하는 것을 잊지 마십시오 :) –

+0

@JamesFry 이것은 afaik 48 시간 후에 만 ​​할 수 있습니다 ... – fabian