我在寻找类似于 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/