gpt4 book ai didi

JavaFX - 控件数组

转载 作者:行者123 更新时间:2023-11-29 09:53:46 24 4
gpt4 key购买 nike

我想创建一个 JavaFX Controller 数组,以便更容易地使用它们,例如您可以在 GridPane 中循环添加/设置元素。

但是尽管编译器/IDE 没有显示任何错误,下面的代码不起作用:

public GridPane drawPane(){
GridPane grid = new GridPane();
Button[] btn = new Button[10];
grid.add(btn[0], 0,0);
return grid;
}

但是这个确实有效:

public GridPane drawPane(){
GridPane grid = new GridPane();
Button btn = new Button();
grid.add(btn, 0,0);
return grid;
}

我是不是错误地实例化了 Controller ?为什么此代码不适用于数组?

最佳答案

试试这个...它将创建一个按钮数组,如果您调用 getGrid() 方法,它会遍历这个按钮数组并将它们添加到 GridPane。

import javafx.application.Application;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;

public class App extends Application {

private Button[] btns = new Button[10];

@Override
public void start(Stage primaryStage) {

initBtnsArray();
Group root = new Group();

root.getChildren().add(getGrid());
Scene scene = new Scene(root, 800, 600);

primaryStage.setTitle("Hello Controller-Array-World!");
primaryStage.setScene(scene);
primaryStage.show();
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
launch(args);
}

private Pane getGrid() {
int i = 0;
GridPane gridPane = new GridPane();
for(Button b : btns) {
// do something with your button
// maybe add an EventListener or something
gridPane.add(b, i*(i+(int)b.getWidth()), 0);
i++;
}
return gridPane;
}

private void initBtnsArray() {
for(int i = 0; i < btns.length; i++) {
btns[i] = new Button("Button-"+i);
}
}
}

帕特里克

关于JavaFX - 控件数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23510648/

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