gpt4 book ai didi

javafx - Java FX 设置 margin

转载 作者:行者123 更新时间:2023-12-02 08:40:02 26 4
gpt4 key购买 nike

这个简单的示例创建了一个区域,其中有 2 个标记为红色的矩形区域。我想使用 VBox margin 方法将右侧区域向右推 n 个像素,但没有任何反应。为什么 margin 在此示例中不起作用?不过它可以在场景生成器中工作..

public class LayoutContainerTest extends Application {

@Override
public void start(Stage primaryStage) {

VBox areaLeft = new VBox();
areaLeft.setStyle("-fx-background-color: red;");
areaLeft.setPrefSize(100, 200);

VBox areaMiddle = new VBox();
areaMiddle.setStyle("-fx-background-color: red;");
areaMiddle.setPrefSize(100, 200);

VBox areaRight = new VBox();
areaRight.setStyle("-fx-background-color: red;");
areaRight.setPrefSize(100, 200);

VBox.setMargin(areaRight, new Insets(0,0,0,50));

HBox root = new HBox(areaLeft,areaMiddle,areaRight);
root.setSpacing(30);



Scene scene = new Scene(root, 600, 250);

primaryStage.setTitle("Hello World!");
primaryStage.setScene(scene);
primaryStage.show();
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}

}

最佳答案

您正在使用 VBox.setMargin() 但应该使用 HBox 方法:

HBox.setMargin(areaRight, new Insets(0, 0, 0, 50));

原因是,您正在为 VBox 的子级设置边距,而 areaRightHBox 的子级。如果您要使用您的代码,然后将 areaRight 放入 VBox 中,您将看到预期的边距。

您提到它在 SceneBuilder 中工作,但如果您检查实际的 FXML 代码,您会发现 SceneBuilder 正确使用 HBox:

<VBox fx:id="areaRight" prefHeight="200.0" prefWidth="100.0" style="-fx-background-color: red;">
<HBox.margin>
<Insets left="50.0" />
</HBox.margin>
</VBox>

关于javafx - Java FX 设置 margin ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51574433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com