JavaFX - 类似于 VBox 的东西,但不会自动调整

标签 java javafx

我在寻找类似于 VBox 的东西(将元素设置在彼此之上)时遇到了一些麻烦,但这不会自动调整。我正在尝试创建甘蒂图,但如果我创建宽度较小的矩形并将文本添加到 VBox 中,并且数字宽度大于我的矩形宽度,它将选择数字宽度。当我开始用 HBox() 将东西放在一起时,这就成了一个问题。

我可以给你看它的图片:

从图像中可以看出,蓝色和黑色矩形之间有空白,这是由于数字的宽度大于矩形的宽度造成的。我想忽略数字宽度并让矩形彼此完全相邻(尽管将数字保留在中间矩形的中心)。 HBox 已创建,值为 0,因此没有间隙。

我的代码完全用爱沙尼亚语编写,我将提供一个示例代码,该代码不是来自实际程序,但具有我所做的想法:

        HBox hbox1 = new HBox();
        VBox vbox1 = new VBox();
        Rectangle r1 = new Rectangle(0,0,30,30);
        Rectangle r2 = new Rectangle(0,0,5,50);
        r2.setFill(Color.BLUE);
        Rectangle r3 = new Rectangle(0,0,30,30);
        Text t1 = new Text();
        t1.setText(Integer.toString(222));
        vbox1.getChildren().addAll(r2,t1);
        hbox1.getChildren().addAll(r1,vbox1,r3);
        root.setBottom(hbox1);

提前致谢。

最佳答案

执行此操作的方法之一如下:

将文本节点设置为其父节点无法管理,并手动确定其位置

Text t1 = new Text();
t1.setText(Integer.toString(222));
t1.setManaged(false);
t1.setLayoutX(-t1.getLayoutBounds().getWidth() / 2);
t1.setLayoutY(r2.getHeight() + t1.getLayoutBounds().getHeight());

关于JavaFX - 类似于 VBox 的东西,但不会自动调整,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26445088/

相关文章:

css - 是否可以为 JavaFX 8 中的单个节点禁用 CSS 样式?

java - 最终jar中src/main下的Maven包资源文件夹

JavaFX:根据任务提示用户,并传回结果?

javafx - 如何从场景生成器中删除 Gluon 控件?

java - 如何在 google app engine-java 的开发服务器上以生产模式运行应用程序

java - JHipster - 从 URL 中永久删除 # HASH

java - 如何在label标签下查找输入文件类型元素

java - 使javafx choicebox根据键盘选择项目

java - 是否必须关闭线程池?

java - 如何在 Spring Boot 中忽略可选的 xsd 属性和列表标记