gpt4 book ai didi

java - 将 2 个或更多图像添加到 Pane Javafx 时遇到问题

转载 作者:行者123 更新时间:2023-12-01 09:53:09 25 4
gpt4 key购买 nike

我正在用 javafx 编写一个简单版本的 BlackJack,但我猜我迷失了回家的路!当我点击按钮时,我需要显示两行卡片。单击按钮时如何连续添加不同的图像?我尝试使用 GridPane 和 BorderPane 但图像显示在同一位置...我知道每次按下按钮时都需要一个 for 循环,但我'我不知道该怎么做..我在 java swing 中制作了相同的游戏,并且进展顺利

所需的布局

I want something like this

当前布局

but in javafx i cant get out of this

这是我的loadImage方法

    public void ImageloadP(Card xPCard) {
String xP = xPCard.toString();
Image card = new Image("file:/Users/cetabije/Desktop/Apa/src/cards.png/" + xP + ".png");
ImageView xPv = new ImageView(card);
xPv.setFitHeight(140);
xPv.setFitWidth(95);
root.getChildren().add(xPv);
}

最佳答案

可以通过GridPane来完成,但您必须指定列/行索引以防止放置Node在同一位置。

为了简单起见,以下示例使用 Rectangle,但它适用于任何 Node 类型:

private Color color = Color.BLACK;

@Override
public void start(Stage primaryStage) {
GridPane gridPane = new GridPane();
gridPane.setHgap(10);
gridPane.setVgap(10);
Button btn = new Button("Add Rect");

// add node specifying column and row index
gridPane.add(btn, 0, 0);

gridPane.setStyle("-fx-background-color: lime;");

btn.setOnAction((ActionEvent event) -> {
color = color.brighter();
Rectangle rectangle = new Rectangle(20, 20);
rectangle.setFill(color);

// append rect to second row
gridPane.addRow(1, rectangle);
});

Scene scene = new Scene(gridPane, 500, 500);

primaryStage.setScene(scene);
primaryStage.show();
}

请注意,如果您使用 gridPane.getChildren().add(node),则使用默认列/行索引 (0),除非分配了不同的位置在 node 的属性中使用 GridPane.setConstraints , GridPane.setRowIndexGridPane.setColumnIndex

请注意,BorderPane 不是正确的 Parent 来显示彼此相邻的多个节点,除非它们适合顶部、左侧、中心、右侧和/或的“角色”或底部节点(您的场景中并非如此)。

关于java - 将 2 个或更多图像添加到 Pane Javafx 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37467941/

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