单击按钮后JavaFX更改标签

单击按钮后JavaFX更改标签,java,button,javafx,Java,Button,Javafx,我试着每次显示一行矩阵。但当按下按钮时,我想显示矩阵的下一行。我的想法是,我用索引“index”显示行,并在按钮按下时创建操作,将1添加到变量“index”。这不是一个好主意,因为它不起作用。它只显示第一行,从不改变 public class GUI extends Application { int index = 0; public static int save[][] = {{1, 2, 3}, {3, 4, 5}, {6, 7, 8}}; public static void ma

我试着每次显示一行矩阵。但当按下按钮时,我想显示矩阵的下一行。我的想法是,我用索引“index”显示行,并在按钮按下时创建操作,将1添加到变量“index”。这不是一个好主意,因为它不起作用。它只显示第一行,从不改变

public class GUI extends Application {
int index = 0;
public static int save[][] = {{1, 2, 3}, {3, 4, 5}, {6, 7, 8}};


public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage primaryStage) {
    Label label = new Label(Arrays.toString(save[index]));


    Button next = new Button();
    next.setText("Next");
    next.setOnAction(e -> {
        dalsi();
    });

    GridPane grid = new GridPane();
    grid.setPadding(new Insets(10, 10, 10, 10));
    grid.setVgap(8);
    grid.setHgap(10);

    GridPane.setConstraints(label, 5, 6);
    GridPane.setConstraints(next, 6, 13);

    grid.getChildren().addAll(label, next);

    Scene scene = new Scene(grid, 250, 180);
    primaryStage.setScene(scene);
    primaryStage.setTitle("QuickSort");
    primaryStage.show();
}

public void dalsi() {
    if (index < Quicksort.delka - 1) {
        index++;
    }
}
}
公共类GUI扩展应用程序{
int指数=0;
公共静态int save[][]={{1,2,3},{3,4,5},{6,7,8};
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
公共无效开始(阶段primaryStage){
Label Label=新标签(Arrays.toString(save[index]);
按钮下一步=新按钮();
next.setText(“next”);
下一步。设置操作(e->{
dalsi();
});
GridPane grid=新建GridPane();
网格设置填充(新的插图(10,10,10,10));
网格设置间隙(8);
网格。setHgap(10);
设置约束(标签5,6);
setConstraints(next,6,13);
grid.getChildren().addAll(标签,下一步);
场景=新场景(网格,250,180);
初级阶段。场景(场景);
primaryStage.setTitle(“快速排序”);
primaryStage.show();
}
公共无效dalsi(){
如果(索引
要更改标签文本,需要在更改文本时调用标签上的setText

将标签设为类的成员变量,然后写入:

label.setText(
    Arrays.toString(save[index])
);

在您使用
dalsi()
方法调用
index++
之后。

是的,谢谢,我没有意识到我可以使label成员变为变量,所以我很难在方法dalsi()中使用label。现在可以工作了:)