我在查找与VBox
类似的内容时遇到了一些麻烦(将元素设置在彼此之上),但这不会自动调整。我试图创建Gantti图,但如果我创建宽度较小的矩形并将文本添加到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);
提前致谢。
答案 0 :(得分:1)
其中一种方法可以如下:
将文本节点设置为其父节点无法管理,并手动确定其位置
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());