Ссылка на текстовое поле в Gridpane

хорошо. Итак, чтобы дать вам некоторую справочную информацию: я программирую судоку, не слишком много работал с графическим интерфейсом, но провел много исследований.

Я создал циклы 2 for, создав Gridpane 9x9, заполненный текстовыми полями, со следующим кодом

GridPane grid = new GridPane();

for(int x =0; x < 9; x++){
    for(int y= 0; y < 9; y++){
        TextField textField = new TextField("0");
        textField.setStyle("-fx-pref-width: 2em;");
        GridPane.setConstraints(textField, y, x);
        grid.getChildren().add(textField);
    }
}

Теперь то, что я делаю, - это иметь четкий способ - например, координату [2][5], чтобы вернуться к 2d-массиву и сравнить с листом ответов. Моя проблема заключается в том, чтобы указать координату в моей области сетки.

С наилучшими пожеланиями.


person brovatten    schedule 03.03.2017    source источник


Ответы (1)


Поместите текстовые поля в массив:

GridPane grid = new GridPane();
TextField[][] textFields = new TextField[9][9] ;

for(int x =0; x < 9; x++){
    for(int y= 0; y < 9; y++){
        TextField textField = new TextField("0");
        textField.setStyle("-fx-pref-width: 2em;");
        GridPane.setConstraints(textField, y, x);
        grid.getChildren().add(textField);
        textFields[x][y]=textField ;
    }
}

Затем вы можете получить доступ к любому элементу (x,y) с помощью textFields[x][y].getText().

person James_D    schedule 04.03.2017