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 클래스를 성공적으로 적용했기 때문에 매우 혼란 스럽습니다 ...
누구든지이 문제를 해결할 시간이 있으면 매우 감사 할 것입니다.
추가하지 않은 이유 '입니다입니다. 'Hbox 클래스에? –