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