2015-11-19 2 views
1

У меня есть метод, который создает новые TextFields в gridPane (2x8). Мне было интересно, как только они будут созданы, как мне получить доступ к информации в каждом индексе (как в: 0,0 - 1,0 и т. Д.).Как получить информацию внутри gridpane (javaFX)

Вот код:

private void llenarGridJugadores(ArrayList<NodoJugadores> array) 
{ 
    if((array.get(0).getCategoria() == 3) && (array.get(0).getSexo().equalsIgnoreCase("m"))) 
    { 
     for(int i = 0 ; i < array.size() ; i++) 
     { 
      TextField text = new TextField(array.get(i).getNombre()); 
      grid.add(text, i, 0); 
     } 
    } 
    else if((array.get(0).getCategoria() == 3) && (array.get(0).getSexo().equalsIgnoreCase("f"))) 
    { 
     for(int i = 0 ; i < array.size() ; i++) 
     { 
      TextField text = new TextField(array.get(i).getNombre()); 
      grid.add(text, 1, i); 
     } 

И вот что я пытаюсь сделать:

public ArrayList<NodoJugadores> retornarGridJugadores(ArrayList<NodoJugadores> array, NodoCategorias aux) 
{ 
    if((aux.getNumCategoria() == 3) && (aux.getSexo().equalsIgnoreCase("m"))) 
    { 
     for(int i = 0 ; i < array.size() ; i++) 
     { 
      array.get(i).setNombre(grid.getChildren().get(i).getAccessibleText()); 
     } 
    } 
} 
+0

это заставило меня хихикать, что вы пишете код на испанском языке. Я этого раньше не видел. – Steven

ответ

1

Я сохранил компоненты в список нового класса я создал. Затем я повторил список, чтобы проверить, существует ли узел (строка, col).

public class Triple{ 
    Node n; 
    int row; 
    int col; 
    public Triple(Node n,int row, int col){ 
     this.row = row; 
     this.col = col; 
     this.n = n; 
    } 
} 

Этот класс предназначен для хранения узла в соответствующем положении.

public static Node getItem(List <Triple> l, int findRow, int findCol){ 

    for(int i=0; i < l.size(); i++){ 
     if(l.get(i).row == findRow && l.get(i).col == findCol){ 
      return l.get(i).n; 
     } 
    } 
    return null; 
} 

Этот статический класс принимает в списке желаемую строку и желаемый столбец. Затем, если существует элемент at (row, col), он возвращает узел.

public static void testThis(){ 
    List <Triple> list = new ArrayList<>(); 
    GridPane gp = new GridPane(); 
    Text a1 = new Text("Click here"); 
    Text a2 = new Text("Click there"); 
    gp.add(a1, 5, 5); 
    gp.add(a2, 5, 5); 

    for(int i=0; i<gp.getChildren().size; i++){ 
      list.add(new Triple(gp.getChildren().get(i), 
       GridPane.getRowIndex(gp.getChildren().get(i)), GridPane.getColumnIndex(gp.getChildren().get(i)))); 
     } 

     Text tempText = (Text) getItem (list, 5, 5); 
     System.out.println(tempText.getText()); 

Выдает «Нажмите здесь»

Смежные вопросы