Matriz! Me ajudem por favor![RESOLVIDO]

import java.util.Random;
import java.util.Scanner;
public class Main {

/**
 * @param args the command line arguments
 */
public static int geraMatriz(int mat[][]){
    Scanner ler = new Scanner(System.in);
    Random numero = new Random();
    System.out.print("Insira as dimensões da matriz: ");
    int lin = ler.nextInt();
    int col = lin;

[color=brown] mat[][] = new int [lin][col];[/color]

    for (int i = 0; i < lin; i++){
        for (int j = 0; j < col; j++){
            mat[i][j] = numero.nextInt(500);
        }
    }
    return mat[lin][col];

}

public static void mmostraMatriz(int mat[][]){
    for (int i = 0; i < mat.length; i++){
        for (int j = 0; j < mat.length; j++)
            System.out.printf("%3d ", mat[i][j]);
        System.out.println();
    }
}
public static void main(String[] args) {
    int matriz[][] = null;
    geraMatriz(matriz[][]);
    mostraMatriz(matriz[][]);
    // TODO code application logic here
}

}

no NetBeans está dando erro e eu não sei o que é! alguém pode me ajudar???

Você esqueceu declarar a matriz como int[][] matriz;

mas ela esta declarada nos parâmetros do método geraMatriz(int mat[][])

ou estou errado!?!

O Bruno esta certo declare a matriz desta forma, int[][] nome = new int[][];
Vlw

MarcioCasteloBranco,

fiz isso e naum funcionou ainda!

Bem, os dois colchetes que você está colocando depois do nome da variável, coloque-os antes do nome
da variável. E quando, depois de ler a quantidade de linhas e atribui-las também a colunas, você está
instanciando a sua nova matriz colocando os colchetes depois da variável, não é preciso fazer isso somente
você precisa colocar o nome da variável.

public static int[][] geraMatriz(int[][] matriz) {
        //.....
        //.....
        //.....
        // instanciando a matriz
        matriz = new int[linha][coluna]; 
        //.....
        //.....
}

Bem além da declaração da matriz e da instanciação, se você olhar bem nesse exemplo que eu coloquei
você poderá perceber que o tipo de retorno que estou declanrando ela não tem apenas o tipo int e sim
o tipo int e também os dois colchetes, já estou querendo retornar uma nova matriz.

E no seu método principal (main) você cria uma matriz e passa ela como parâmetro, só que nesse método
que você está fazendo ele retorna uma matriz que foi criada dentro dele, e você não está recebendo essa
matriz no seu método principla, lógico que dessa maneira também dará certo. Então pergunto, é preciso
criar um método que instancie uma matriz e retorne-a ou não, porque se for necessário você retornar uma
matriz não precisaria que esse método recebesse um parâmetro?

Perfeito vc insatancio a matriz contudo agora vc tem que instanciar cada posição da matriz
for (int i = 0; i < lin; i++){
for (int j = 0; j < col; j++){
mat[i][j] = new int();//a cada posição recebera um int!!!
mat[i][j] = numero.nextInt(500);
}
}
return mat[lin][col];

}

Por favor, use as tags e sempre que postar seu código.

Acontece que você está misturando o tipo da variável com o nome dela. O tipo é int[][] e o nome é matriz (e não matriz[][]).

Olha um exemplo:

import java.util.Random;
import java.util.Scanner;

public class Main {

	public static int[][] geraMatriz(){
		Scanner ler = new Scanner(System.in);
		Random numero = new Random();
		System.out.print("Insira as dimensões da matriz: ");
		int lin = ler.nextInt();
		int col = lin;
		int[][] mat = new int [lin][col];
		for (int i = 0; i < lin; i++){
			for (int j = 0; j < col; j++){
				mat[i][j] = numero.nextInt(500);
			}
		}
		return mat;
	}

	public static void mostraMatriz(int[][] mat){
		for (int i = 0; i < mat.length; i++){
			for (int j = 0; j < mat.length; j++) {
				System.out.printf("%3d ", mat[i][j]);
			}
			System.out.println();
		}
	}
	
	public static void main(String[] args) {
		int matriz[][] = geraMatriz();
		mostraMatriz(matriz);
	}

}

obrigado! funcionou

COLOCA NO TOPICO RESOLVIDO
VLW