0
我想更改背景圖片的不同層次,我得到: 這是我的了Methode同時使用CSS來設置背景圖片:JavaFX的如何更改CSS的與HBox
public void setBackgroundImage(HBox group, String ebene) {
switch (ebene) {
case "air": {
String air_img = GrafikManager.class.getResource("/obkclient/img/Himmelsschlacht.jpg").toExternalForm();
group.getStyleClass().removeAll(); //also tried with getStylsheets()
group.setStyle("-fx-background-image: url('" + air_img + "');\n"
+ "-fx-background-size: 1024, 768;\n"
+ "-fx-background-repeat: stretch;\n"
);
break;
}
case "sub": {
String sub_img = GrafikManager.class.getResource("/obkclient/img/Unterwasserschlacht.jpg").toExternalForm();
group.getStyleClass().removeAll();
group.setStyle("-fx-background-image: url('" + sub_img + "');\n"
+ "-fx-background-size: 1024, 768;\n"
+ "-fx-background-repeat: stretch;\n"
);
break;
}
default: {
String image = GrafikManager.class.getResource("/obkclient/img/Seeschlacht.jpg").toExternalForm();
group.getStyleClass().removeAll();
group.setStyle("-fx-background-image: url('" + image + "');\n"
+ "-fx-background-size: 1024, 768;\n"
+ "-fx-background-repeat: stretch;\n"
);
break;
}
}
}
但是,如果我只是開始我請參閱默認的BackgroundImage。 我在以下環境中使用此了Methode:
public SubScene buildFieldBackground(Scene scene){
PerspectiveCamera subSceneFieldCamera = new PerspectiveCamera(false);
scene.setCamera(subSceneFieldCamera);
HBox subSceneGroup2 = new HBox();
setBackgroundImage(subSceneGroup2, currentEbene);
subSceneGroup2.setPadding(new Insets(0, 0, 0, 0));
SubScene subScene2 = new SubScene(subSceneGroup2, 1024, 768);
subScene2.setLayoutX(100);
subScene2.setLayoutY(100);
return subScene2;
}
和CurrentEbene可以得到以下統計數據(由其他了Methode設置):「空氣」,「海」,「子」
在哪裏這個錯誤我沒有找到,但。請幫忙。
注意'group.getStyleClass()的removeAll();'沒有做任何事情:你大概是這個意思'group.getStyleClass()。clear();',但我認爲它不會有什麼區別。你能澄清一下嗎?你是否從'switch'中的'default'案例(即'Seeschlacht.jpg'中的圖像)獲取了圖像?如果是這樣,放一個'System.out.println(ebene);'來檢查傳遞的是什麼。 –
在開始我設置currentEbene =「海」。 所以我認爲默認情況會先得到。 – malex
我得到解決方案!在設置背景之前,我有一個線程異常。我無法發佈正確的代碼,因爲我沒有足夠的分數。 但是,如果我達到他們,我會更新我的解決方案! – malex