Search code examples
javaswingsortingjtable

How to display a matrix in a descending and ascending form in a JTextArea java with Array.sort?


I need to sort the matrix in descending and ascending order but print it as a 1 dimension array.

Currently it sorts in ascending order but only the last row and I don't know how to show all the rows and I don't know how to sort it in a descending way.

 public void mostrarMatriz (int matriz[][], int n){
        
        DefaultTableModel model = (DefaultTableModel) tablaMatriz.getModel();
        model.setRowCount(n);
        model.setColumnCount(n);
       
        for(int i = 0; i < n ; i++){
            for(int j = 0; j < n; j++){
                tablaMatriz.setValueAt(matriz[i][j], i, j);
            } 
        }
        for(int[] i: matriz){   
            Arrays.sort(i);
            txtMenor.setText(Arrays.toString(i));
        }   
    }
}

Solution

  • The loop should append the text, instead of resetting it at each iteration:

    String text="";
    for(int[] i: matriz)
    {   
       Arrays.sort(i);
       text+=Arrays.toString(i)+" ";
    }
    if (!text.isEmpty())
        txtMenor.setText(text.subString(0,text.length()-1));
    

    Contrary order, just flip it after:

    Collections.reverse(Arrays.asList(matriz)); 
    txtX.setText(Arrays.deepToString(matriz));