Foro de elhacker.net

Programación => Java => Mensaje iniciado por: BlackJocker en 21 Julio 2016, 00:16 am



Título: Como obtener los valores de una matriz de JTextField
Publicado por: BlackJocker en 21 Julio 2016, 00:16 am
Saludos a todos, empezare explicando la situación en la que me encuentro que es la siguiente:
Estoy empezando a realizar un programa sobre operaciones con matrices de álgebra lineal, ahora me encuentro en un bache eh creado una matriz de JTextField con filas y columnas que que desee el usuario, la genera y se presenta en el formulario pero no encuentro la manera para extraer los valores de estos campos de texto, de esta manera genero la matriz y ocupo que al presionar un nuevo botón se guarden lo valores.
Código:
private void GenerarAActionPerformed(java.awt.event.ActionEvent evt) {                                         
        
        String filasA=this.FilasA.getText();
        String columnasA=this.ColumnasA.getText();
        
        int i=parseInt(filasA);
        int j=parseInt(columnasA);

        JTextField [][] matriz = new JTextField[i][j];

        
        int posh = 190;
        int posv =50;
        int fil=0;
        int col=0;

        for(col=0;col<i;col++){
            for(fil=0;fil<j;fil++){
                matriz[col][fil]= new JTextField();
                matriz[col][fil].setBounds(posv,posh,90,30);
                add(matriz[col][fil]);
                posv+=80;
            }
            posh+=30;
            posv =50;
        }
  this.repaint();
    }
si alguien me puede ayudar se lo agradecería mucho.


Título: Re: Como obtener los valores de una matriz de JTextField
Publicado por: Octsam en 21 Julio 2016, 14:04 pm

Para obtener el contenido de cada campo de texto, basta escribir:

Código:
String texto = campo.getText();

Y si quieres convertirlo a un número "double", puede escribir:

Código:
double número = Double.parseDouble(campo.getText());

Así que en tu caso basta que pongas:

Código:
int ancho = matriz.length, alto = matriz[0].length;
double[][] matriz2 = new double[ancho][alto];

for(int i = 0, j; i < ancho; ++i){
    for(j = 0; j < alto; ++j){
        matriz2[i][j] = Double.parseDouble(matriz[i][j].getText());
    }
}


No obstante, lo he escrito así para simplificar; si no habría puesto un código con varias optimizaciones.

La verdad es que lo que necesitas no tiene dificultad. Debes mirar más la documentación de Java, y los ejemplos que hay por internet.