I am trying to write a function that can input a matrix of any size using a GridLayout, but I'm stuck since I can't find an appropriate way of extracting the JTextField values to fill the 'mat' var (see FIXME below).
/**
* @mat: matrix declared in main (e.g: mat[][] = new int[3][3];)
* @rows: number of matrix rows (e.g: int rows = 3;)
* @columns: number of matrix columns (e.g: int columns = 3;)
*/
public static int[][] inputMatrix(int[][] mat, int rows, int columns)
{
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(rows,columns));
for (int a=0; a<(rows*columns); a++)
{
panel.add(new JTextField(a));
}
if (JOptionPane.showConfirmDialog(null, panel, "Enter the matrix", JOptionPane.OK_CANCEL_OPTION)
== JOptionPane.OK_OPTION)
{
for(int a=0; a<(rows*columns); a++){
for(int b=0; b<rows; b++){
for(int c=0; c<columns; c++){
/* FIXME: find how to extract JTextField values. */
mat[b][c] = JTextField.a.getText();
}
}
}
}
return mat;
}
Thanks in advance for your help!