0

我已经尝试了一个星期左右的聊天,目标是聊天将成为一个包含人物和背景房间的动画聊天。到目前为止,我已经创建了具有背景的 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');}

谁能帮助我并指导我如何让我的标签出现在图片中并可见?:)

先感谢您!

我的程序图片

4

1 回答 1

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);
于 2012-10-08T07:43:52.993 回答