Aquí te pongo el código que podría ser una solución, aunque no sé exactamente si es así como lo quieres.
Yo esto suponiendo que si tienes una matriz como:
[ 9 8 7
2 6 5
9 9 2 ]
Lo que quieres es generar un vector con los elementos de la matriz extrayendo fila a fila, de forma que el vector quedaría así:
[9 , 8 , 7 , 2 , 6 , 5 , 9 , 9 , 2 ]
Código ampliado:
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
public class Menu_matriz {
public static void main(String[] args){
String menu="MENU DE MATRICES \n";
int i,j;
int n=Integer.parseInt(JOptionPane.showInputDialog(" Cuantas filas ? "));
int a[][]=new int [n][n];
int b[][]=new int [n][n];
int c[][]=new int [n][n];
int vector []= new int[n*n];
llenar_matrices(a,b,n);
int op=0;
menu+="1. Suma de matrices\n";
menu+="2. Transpuesta de matriz\n";
menu+="3. Intercambiar filas\n";
menu+="8. Guardar en Vector\n";
menu+="12. Imprimir Matriz por consola\n";
menu+="13. Imprimir Matriz por ventanas\n";
menu+="20. Fin\n";
menu+="Escoja Opción:\n";
while (op!=20){
op=Integer.parseInt(JOptionPane.showInputDialog(menu));
switch (op){
case 1:
sumar(a,b,c,n);
break;
case 2:
transpuesta(a,c,n);
break;
case 3:
intercambia_filas(a,c,n);
break;
case 8:
Guardar_Vector(a, vector, n);
break;
case 12:
imprimir (a,n);
break;
case 13:
imprime_ventana(a,n,"Matriz A-------GARROTE");
break;
case 20:
break;
}
}
}// cierre del public static void main Ojo !!!! //------------------
static void sumar(int a1[][], int b1[][],int c1[][], int n1){
for (int i=0;i<n1;i++){
for (int j=0;j<n1;j++){
c1[i][j] = a1[i][j] + b1[i][j];
}
}
imprime_ventana(a1,n1,"Matriz A");
imprime_ventana(b1,n1,"Matriz B");
imprime_ventana(c1,n1,"Matriz A+B");
}
static void transpuesta(int a[][],int c[][], int n){
int i,j;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
c[i][j]=a[j][i];
}
}
imprime_ventana(a,n,"Matriz A");
imprime_ventana(c,n,"Matriz Transpuesta");
}
static void intercambia_filas(int a[][],int c[][],int n){
int i,j,t;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
c[i][j]=a[i][j];
}
}
int f1=Integer.parseInt(JOptionPane.showInputDialog("Digite primera fila a intercambiar"));
int f2=Integer.parseInt(JOptionPane.showInputDialog("Digite segunda fila a intercambiar"));
for(j=0;j<n;j++){
t=c[f1][j];
c[f1][j]=c[f2][j];
c[f2][j]=t;
}
imprime_ventana(a,n,"Matriz A");
imprime_ventana(c,n,"Matriz de filas intercambiadas");
}
static void Guardar_Vector(int a[][], int vector[], int n){
int i,j;
int contador = 0;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
vector[contador]=a[i][j];
contador = contador+1;
}
}
imprime_ventana(a,n,"Matriz A");
imprime_ventana_vector(vector,n,"Vector generado");
}
static void llenar_matrices(int a1[][], int b1[][],int n1){
for (int i=0;i<n1;i++){
for (int j=0;j<n1;j++){
a1[i][j]=(int)(Math.random()*10);
b1[i][j]=(int)(Math.random()*10);
//System.out.println("Control apr " + a1[i][j] + " - " + b1[i][j]);
}
}
}
static void imprimir(int m[][], int n1){
for (int i=0;i<n1;i++){
for (int j=0;j<n1;j++){
System.out.print(m[i][j]+"\t");
}
System.out.println(" ");
}
}
static void imprime_ventana (int a[][],int n,String mensaje){
String salida="";
for (int i=0;i<n;i++){
for(int j=0;j<n;j++){
salida=salida+ a[i][j]+"\t";
}
salida=salida+"\n";
}
JTextArea area= new JTextArea();
area.setText(salida);
JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
}
static void imprime_ventana_vector (int a[],int n,String mensaje){
String salida="[";
for (int i=0;i<n*n;i++){
salida=salida+ a[i]+" ";
if (i != n*n-1) {salida=salida+", ";} else {salida=salida+"] ";}
}
JTextArea area= new JTextArea();
area.setText(salida);
JOptionPane.showMessageDialog(null,area,mensaje,JOptionPane.PLAIN_MESSAGE);
}
}/// cierre class
Esto es lo que hace el código que te he puesto. He tenido que crear un método para imprimir el vector, revísalo a ver si te sirve. Saludos y suerte.