JavaFX изменить метку после нажатия кнопки - PullRequest
0 голосов
/ 14 января 2020

я пытаюсь показать одну строку матрицы каждый раз. Но когда кнопка нажата, я хочу показать следующую строку этой матрицы. Моя идея состояла в том, чтобы я показал строку с индексом «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++;
    }
}
}

1 Ответ

1 голос
/ 14 января 2020

Чтобы изменить текст метки, вам нужно вызвать setText для метки, когда вы хотите, чтобы текст изменился.

Сделайте вашу метку переменной-членом для класса, затем напишите:

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

после вызова index++ в вашем dalsi() методе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...