Здравствуйте. Есть метод, генерирующий аналог таблицы с использованием GridPane:
private GridPane createTable(ObservableList<String> headers, int matrix_size){
GridPane table = new GridPane();
table.getStyleClass().add("table_design");
table.setGridLinesVisible(true);
table.setVgap(0);
ObservableList<Label> labels = FXCollections.observableArrayList();
ObservableList<Label> labelsVertical = FXCollections.observableArrayList();
for(int i = 0; i < matrix_size; i++){
Label label = new Label(headers.get(i));
label.setPadding(new Insets(0));
label.getStyleClass().add("labels_headers");
labels.add(label);
Label labelVertical = new Label(headers.get(i));
labelVertical.setPadding(new Insets(0));
labelVertical.getStyleClass().add("labels_headers");
labelsVertical.add(labelVertical);
}
TextField[][] textFields = new TextField[matrix_size][matrix_size];
for(int i = 0; i < matrix_size; i++){
for (int j = 0; j < matrix_size; j++){
TextField textField = new TextField();
if(i == j){
textField.setText("1");
textField.setEditable(false);
}
textField.setMinWidth(5);
textField.setAlignment(Pos.CENTER);
textFields[i][j] = textField;
}
}
for(int i = 0; i < matrix_size; i++){
for(int j = 0; j < matrix_size; j++){
if(i == 0 && j == 0){
continue;
}
if(i == 0){
table.add(labels.get(j - 1), j, i);
System.out.println("Label added to " + j + ", " + i);
GridPane.setHalignment(labels.get(j - 1), HPos.CENTER);
if(j == matrix_size - 1){
table.add(labels.get(j), j + 1, i);
System.out.println("Label added to " + (j + 1) + ", " + i);
GridPane.setHalignment(labels.get(j), HPos.CENTER);
}
}
if(j == 0){
table.add(labelsVertical.get(i - 1), j, i);
System.out.println("LabelV added to " + j + ", " + i);
if(i == matrix_size - 1){
table.add(labelsVertical.get(i), j, i + 1);
System.out.println("LabelV added to " + j + ", " + (i + 1));
}
}
if(i != 0 && j != 0){
table.add(textFields[i - 1][j - 1], j, i);
System.out.println("TextField added to " + j + ", " + i);
if(i == matrix_size - 1){
table.add(textFields[i][j - 1], j, i + 1);
System.out.println("TextField added to " + j + ", " + (i + 1));
}
if (j == matrix_size - 1) {
table.add(textFields[i - 1][j], j + 1, i);
System.out.println("TextField added to " + (j + 1) + ", " + i);
}
if(i == matrix_size - 1 && j == matrix_size - 1){
table.add(textFields[i][j], j + 1, i + 1);
System.out.println("TextField added to " + (j + 1) + ", " + (i + 1));
}
}
}
}
return table;
}
Нужно, чтобы метки и текстовые поля добавлялись в таком порядке: метка, и до конца строки текстовые поля. Кроме первой строки, естественно. Работает корректно, за исключением того, что в последних двух строках порядок следующий: метка первой строки, метка второй строки, текстовое поле первой строки, текстовое поле второй строки и т. д., до конца итерации цикла. Никак не могу понять, почему?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть метод которые обробатывают данные кладет их в несколька массивов и возращает двухмерный массивПроблема такая что нужно возратить два...
Например: есть AutoRepository, сущность Auto и его наследники Car и BusНужно, чтобы EntityManager возвращал результат запроса с экземплярами в зависимости от типа...
Не могу разобраться как использовать API сайта картинок DribbbleВот здесь вроде как написано о его использовании, но видимо до меня что-то не доходит