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

标签 java javafx pane loadimage

我正在用 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/

相关文章:

Java如何访问位于我的项目上方目录中的文件

javascript - mapbox传单javascript Pane 图层控件

java - StackPane 中的居中弹出 Pane

java - 将 FindBugs 配置从 Sonar 导入 Maven

JavaFX 2.2 : How to implement a new Chart that extends LineChart

java - 在 hashMap<String, ArrayList<String>> 中存储信息的问题

javafx 在游戏中渲染实体的正确方法?

cocoa - IB : Where is the Bindings Pane

java - izpack 安装程序自定义卸载程序

java - 使用 Java http 客户端使用 Sharepoint 2010 REST API 发布数据