gpt4 book ai didi

java - 即使在整数更改后,如何使某些东西使用整数的先前值

转载 作者:行者123 更新时间:2023-11-30 07:53:46 25 4
gpt4 key购买 nike

我是编程新手,目前使用 JavaFX 作为个人组织工具。我在这里展示了一个按钮(称为书籍)和阶段(称为 bookStages)的数组列表,一个称为 addBook 的 VBox,以及一个设置为 0 的称为 bookButtonCount 的 Int。

addBook.setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
addBooks.getChildren().add(books.get(bookButtonCount));

books.get(bookButtonCount).setOnAction(new EventHandler<ActionEvent>() {
@Override
public void handle(ActionEvent t) {
bookStages.get(bookButtonCount).show();
System.out.println(bookButtonCount);
}
});
bookButtonCount++;
}
});

第一个按钮将“books”数组列表中的一个按钮添加到 VBox。 vbox 中的按钮应该从舞台数组列表中打开一个舞台。您应该能够多次触发按钮,每次都向 vbox 添加一个新按钮并将该按钮设置为打开自己的舞台。尽管使用 bookButtonCount 作为引用似乎不起作用,因为每次按下 vbox 中的书籍数组列表中的按钮时,它都会检查 bookButtonCount 的当前值。(随着添加更多按钮而改变)并打开错误的阶段.

有什么方法可以让按钮的操作仅在设置时使用 bookButtonCount 的值保存?

如果没有,我该如何设置?下面是一些可能有用的代码:

ArrayList<Stage> bookStages = new ArrayList();
ArrayList<Button> books = new ArrayList();
for (int i=0;i<10;i++){
books.add(new Button("Book " + (i+1)));
bookStages.add(new Stage());
bookStages.get(i).setTitle("Book " + (i+1));
}

最佳答案

只需在创建按钮和阶段时注册处理程序:

ArrayList<Stage> bookStages = new ArrayList();
ArrayList<Button> books = new ArrayList();
for (int i=0;i<10;i++){
Button button = new Button("Book " + (i+1));
books.add(button);
Stage stage = new Stage();
bookStages.add(stage);
stage.setTitle("Book " + (i+1));
button.setOnAction(e -> stage.show());
}

addBook.setOnAction(e -> {
addBooks.getChildren().add(books.get(bookButtonCount));
bookButtonCount++ ;
});

关于java - 即使在整数更改后,如何使某些东西使用整数的先前值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44511327/

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