如何对齐对象并设置彼此之间的间距?用JavaFX和Java编程

如何对齐对象并设置彼此之间的间距?用JavaFX和Java编程,java,javafx,javafx-2,Java,Javafx,Javafx 2,我一直在玩JavaFX,我真的很喜欢它。但我似乎无法在我想要的地方得到我的内容。即使我在中心放置一个vbox,在顶部放置一个标签,它们仍然在中心,几乎彼此接触 我想要(当然在屏幕中央): 但它表现为: My Title SubLabel Button1 Button2 Button3 BottomLabel 如果我将TranslateX设置为我的vbox或top标签,它会移动标签,但也会移动所有其他标签 如何使其正确对齐 这是我的伪代码: private Node PreMenu()

我一直在玩JavaFX,我真的很喜欢它。但我似乎无法在我想要的地方得到我的内容。即使我在中心放置一个vbox,在顶部放置一个标签,它们仍然在中心,几乎彼此接触

我想要(当然在屏幕中央):

但它表现为:

My Title
SubLabel
Button1
Button2
Button3
BottomLabel
如果我将TranslateX设置为我的vbox或top标签,它会移动标签,但也会移动所有其他标签

如何使其正确对齐

这是我的伪代码:

private Node PreMenu()
    {

        Group group2 = new Group();

        BorderPane pane = new BorderPane();

        Text label = new Text("Please Choose a Option");
        label.setFont(Font.font("Kozuka Gothic Pro", 30));
        label.setEffect(addEffect(Color.web("#FF6600"), .85, 20));
        label.setTextAlignment(TextAlignment.CENTER);
        label.setTranslateY(-300); //This moves my label, but it also moves the vbox under it DOWN.

        VBox vbox = new VBox();

        Button option1= new Button("Firstbutton");
        Button option2= new Button("Secondbutton");
        Button option3= new Button("HelpButton");
        option1.setEffect(addEffect(Color.web("#FF6600"), .8, 10));
        option2.setEffect(addEffect(Color.web("#FF6600"), .8, 10));
        option3.setEffect(addEffect(Color.web("#FF6600"), .8, 10));
        option1.setTextAlignment(TextAlignment.CENTER);
        option1.setMinWidth(400);
        option2.setTextAlignment(TextAlignment.CENTER);
        option2.setMinWidth(400);
        option3.setTextAlignment(TextAlignment.CENTER);
        option3.setMinWidth(400);

        vbox.setSpacing(20);
        vbox.getChildren().add(option1);
        vbox.getChildren().add(option2);
        vbox.getChildren().add(option3);

        pane.setTop(label);
        pane.setCenter(vbox);

        group2.getChildren().add(pane);

        return group2;
    }

我程序中的另一个节点也有同样的问题:

不要将它放在一个组中。直接返回边框窗格即可。如果您可以发布一个完全正常工作的示例(使用main()),我会看一看,但我怀疑问题在于您不必要地围绕BorderPane的组


组在JavaFX中有一个特殊的功能,请阅读有关组和区域之间差异的文档。

不要将其放在组中。直接返回边框窗格即可。如果您可以发布一个完全正常工作的示例(使用main()),我会看一看,但我怀疑问题在于您不必要地围绕BorderPane的组


组在JavaFX中有一个特殊的功能,请阅读有关组和区域之间差异的文档。

使用代码的最简单方法是使用按钮为
Vbox设置顶部和底部填充:

vbox.setPadding(new Insets(50,0,50,0));

这行在vbox上方和下方添加50像素的间距。

使用代码的最简单方法是使用按钮设置
vbox的顶部和底部填充:

vbox.setPadding(new Insets(50,0,50,0));

这行在vbox的上方和下方添加50像素的间距。

谢谢john。明天我会发布完整的代码。我被困了一整天。我今晚要出去。谢谢约翰。明天我会发布完整的代码。我被困了一整天。我今晚要出去。