gpt4 book ai didi

java - 如何根据If Else函数刷新GridPane?

转载 作者:行者123 更新时间:2023-12-02 04:20:50 25 4
gpt4 key购买 nike

我正在开发一个简单的购物车应用程序,作为我使用 Java 的第一个功能项目。该应用程序将跟踪哪些购物车被 checkout 以及哪些购物车在第一次迭代中在每个建筑物中可用。

我使用 if else 函数来构建 GridPane bldg1Grid。该 Pane 仅包含用于检查购物车的按钮(如果购物车符合库存真实状态以及该 GridPane 的匹配建筑物编号的标准)。 if else 函数第一次起作用,并且根据购物车的原始状态,显示或不显示该购物车按钮。然而,在 checkout 购物车后,它会使用一种方法将该状态更改为 false。 GridPane 似乎停留在原来构建的版本上,但我确认使用了 in stock 变量的 System.out.println 语句,并且它正确返回了更改。我对 JavaFX 非常陌生,但我尝试过使用///bldg1Grid.getChildren().clear()///和removeAll 函数来创建 else 语句,但似乎都不起作用。我还尝试明确 GridPane 函数以强制其重新启动,但由于某种原因无法在其自己的函数中使用 GridPane。帮忙?

购物车代码:

    Cart cart1 = new Cart(1,1,true,true,true);
Cart cart2 = new Cart(2,1,true,true,true);
Cart cart3 = new Cart(3,2,true,true,true);

这是切换到 1 号楼的原始场景按钮之一,问题在于:

    @Override public void start(Stage primaryStage){
stage = primaryStage;

cart1Status = this.cart1Status;
//Main scene build
mainHeader = new Label();
mainHeader.setText("Select which building cart is at:");

bldg1 = new Button();
bldg1.setText("Building 1");
bldg1.setOnAction(event -> bldg1Select());

我的 gridpane 构建: - 这次迭代我尝试让它为 else 添加一个备用按钮,并且还尝试采用 this.status 并将其设为一个新变量来尝试以这种方式使用它:

     GridPane bldg1Grid = new GridPane();
bldg1Grid.addRow(0, buildingLabel);
if (cart1Status == true){
bldg1Grid.addRow(1, btnC1);
} else if (cart1Status == false){
bldg1Grid.addRow(0, btnTest);
}
else{
}

if (cart2.status == true && cart1.bldgNmbr == 1){
bldg1Grid.addRow(2, btnC2);
} else {}
if (cart3.status == true && cart1.bldgNmbr == 1){
bldg1Grid.addRow(3, btnC3);
} else {}

我尝试清除网格 Pane 的方法:

    private void clearBldg1Grid(){
bldg1Grid.getChildren().clear();
}

没有错误消息,并且在使用该方法将状态从 true 更改为 false 后,变量似乎确实发生了更改并保持更改状态。我使用 println 语句证明了这一点,并在我从主场景来回切换时在进入页面之前和之后打印它们。预期输出是每次您前往 1 号楼时,它仅显示 status == true && bldgNmbr == 1 的购物车。

最佳答案

我未能在代码开头正确设置变量'''私有(private) GridPane bldg1Grid;'''一旦我这样做了,我就可以在我的方法中调用它,根据 if 函数清除节点。

关于java - 如何根据If Else函数刷新GridPane?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56636984/

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