我已经尝试聊了一个星期左右,目标是聊天将变成一个包含数字和背景房间的动画聊天。到目前为止,我已经创建了具有背景的gui,现在已经到了我想要添加我的角色的地方,如果有人连接。 GUI在JavaFx Scenebuilder中创建,样式表在CSS中创建。
这背后的想法是,当有人连接到服务器时,他们被给予一个聊天人,然后在屏幕上随机点站立(稍后在工具运动:) :)但我的问题是,当我尝试创建一个附有图片的标签GUI似乎没有显示图片(如下图所示)我的代码如下:
Label test = new Label();
test.setStyle("build.css");
test.setText("Here i am");
test.setVisible(true);
Image img = new Image(getClass().getResourceAsStream("Figur.png"));
Label test2 = new Label("", new ImageView(img));
test2.setLayoutX(50);
test2.setLayoutY(30);
test2.setVisible(true);
上面的代码是2次尝试创建标签,而Gui仍然没有实际显示它们。我目前的想法是标签隐藏在GUI的背景图片后面,因为我只是通过CSS添加图片(使用以下代码):
#AnchorPane{-fx-background-image:url('Background.JPG');}
任何人都可以帮助我并指导我如何让我的标签出现在图片中并且可见吗? :)
提前谢谢!
答案 0 :(得分:1)
你的第一次尝试是错误的
test.setStyle("build.css");
加载CSS样式表,如下所示
scene.getStylesheets().add(getClass().getResource("build.css").toExternalForm());
并将加载的css中定义的自定义ID选择器应用于测试标签
test.setId("myTestId");
你的第二次尝试是正确的。显示如何将这些标签添加到场景中 更新:要动态添加标签,请执行以下操作 在FXML文件的控制器类中,链接到锚点窗格并为其添加标签:
@FXML private AnchorPane anchorPane; // where fx:id = anchorPane
anchorPane.getChildren().addAll(test, test2);