Error variables estaticas y no estaticas
Hola, estoy empezando con java y me está costando un triunfo. Mi programa lee una matriz y calcula el numero de unos separados por ceros de cada fila, pero me da error non-static variable solucion cannot be referenced from a static context. Tengo yo mucho lio con las variables globales, objetos y demas...
import java.io.*;
import java.util.*;
public class Matriz_Solucion {
public int n;
public int [][] solucion = new int[n][n];
public static void main(String args[]) throws IOException {
int n,i,j;
Matriz_Solucion matriz = new Matriz_Solucion();
InputStreamReader isr=new InputStreamReader (System.in);
BufferedReader br=new BufferedReader(isr);
String valor, cadaNum;
System.out.println("Introduce tamaño: ");
valor=br.readLine();
n=Integer.valueOf(valor).intValue();
int [][] m =new int[n][n]; // matriz de entrada
//lectura de la matriz m
for (i=0;i<n;i++){
System.out.println("introduzca fila "+i);
valor=br.readLine();
StringTokenizer st=new StringTokenizer(valor);
for (j=0;j<n;j++) {
cadaNum=st.nextToken();
m[i][j]=Integer.parseInt(cadaNum);
}
}
System.out.println("matriz introducida: ");
matriz.ver(m) ;
matriz.porfilas(m);
matriz.ver(solucion);
}
public void ver (int[][] a) {
int i,j;
int n=a.length;
for (i=0;i<n;i++) {
for(j=0;j<n;j++) {
System.out.print (" "+a[i][j]);
}
System.out.println();
}
}
public void porfilas (int[][] a) {
int n=a.length;
int []fila = new int[n];
int i,j;
for (i=0;i<n;i++) {
System.out.print ("Fila: ");
for (j=0;j<n;j++) {
fila[j]=a[i][j];
}
ver2 (fila);
calcular(fila,i);
}
}
public void ver2 (int[] a) {
int i,j;
int n=a.length;
for(j=0;j<n;j++) {
System.out.print (" "+a[j]);
}
System.out.println();
}
public int [][] calcular (int [] a, int i) {
int n=a.length;
int [][]solucion = new int [n][n];
int indice = n-1;
int indice_sol = n/2+1;
System.out.println ("indice_sol " +indice_sol);
int s_grupo = 0;
while (indice>=0) {
if (a[indice]==1){
s_grupo = s_grupo + 1;
indice = indice-1;
System.out.println ("indice " +indice);
}
else{
if (s_grupo>0) {
System.out.println ("solucion " +s_grupo);
solucion[i][indice_sol-1] = s_grupo;
System.out.println ("[i][indice_sol] " +solucion[i][indice_sol-1]);
s_grupo=0;
indice_sol = indice_sol-1;
}
indice=indice-1;
}
}
if (s_grupo>0){
solucion[i][0]=s_grupo;
System.out.println ("[i][0] " +solucion[i][0]);
indice_sol = indice_sol -1;
}
return (solucion);
}
}
