向所有按钮添加相同的操作但操作不适用于 Javafx 中的最后一个按钮
Adding same action to all buttons but action not applied to last button in Javafx
我有 FirstFxml.fxml 文件及其控制器作为 FirstFxmlController。我需要根据 sizeOfList(当前假设为 4)创建自定义 运行 时间按钮。我创建了以下代码并为其添加了操作。但它不能将此操作应用于最后一个按钮。意味着通过单击最后一个按钮(即单击我 4),setOnAction 不适用于它。我用 lambda 和处理程序试过这个,但它们也有同样的问题。以下代码是否存在任何 javafx 问题,建议我针对此问题进行更改。
public class FirstFxmlController实现Initializable{
@FXML
public VBox centerVBox;
@Override
public void initialize(URL location, ResourceBundle resources) {
//Adding multiple buttons
int sizeOfList = 5;
StackPane stack[] = new StackPane[sizeOfList];
Button b[] = new Button[sizeOfList];
for(int i = 1; i<sizeOfList; i++){
b[i] = new Button("Click me "+i);
b[i].setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
System.out.println("Clicked");
}
});
stack[i] = new StackPane();
stack[i].setMargin(b[i], new Insets(20, 0, 0, 0));
stack[i].getChildren().add(b[i]);
centerVBox.getChildren().add(stack[i]);
}
}
抱歉,这是我的错误,因为 vbox 位于边框窗格的中心部分,并且此边框窗格的大小是固定的。所以发生的是 borderpane 的底部元素覆盖了最后一个按钮。所以它导致最后一个按钮不起作用。问题解决了。我只是增加了主屏幕的大小。感谢小伙伴们的即时回放和建议。
我有 FirstFxml.fxml 文件及其控制器作为 FirstFxmlController。我需要根据 sizeOfList(当前假设为 4)创建自定义 运行 时间按钮。我创建了以下代码并为其添加了操作。但它不能将此操作应用于最后一个按钮。意味着通过单击最后一个按钮(即单击我 4),setOnAction 不适用于它。我用 lambda 和处理程序试过这个,但它们也有同样的问题。以下代码是否存在任何 javafx 问题,建议我针对此问题进行更改。
public class FirstFxmlController实现Initializable{
@FXML
public VBox centerVBox;
@Override
public void initialize(URL location, ResourceBundle resources) {
//Adding multiple buttons
int sizeOfList = 5;
StackPane stack[] = new StackPane[sizeOfList];
Button b[] = new Button[sizeOfList];
for(int i = 1; i<sizeOfList; i++){
b[i] = new Button("Click me "+i);
b[i].setOnAction(new EventHandler<ActionEvent>() {
@Override public void handle(ActionEvent e) {
System.out.println("Clicked");
}
});
stack[i] = new StackPane();
stack[i].setMargin(b[i], new Insets(20, 0, 0, 0));
stack[i].getChildren().add(b[i]);
centerVBox.getChildren().add(stack[i]);
}
}
抱歉,这是我的错误,因为 vbox 位于边框窗格的中心部分,并且此边框窗格的大小是固定的。所以发生的是 borderpane 的底部元素覆盖了最后一个按钮。所以它导致最后一个按钮不起作用。问题解决了。我只是增加了主屏幕的大小。感谢小伙伴们的即时回放和建议。