Fiz a array mas nao consigo imprimi-la como tal

Galera minha lógica esta ruim não estou conseguindo imprimir minha array como tal.
Eu peço para o usuario digitar o tamanho da matriz e na hora de imprimir num console mesmo nao estou tendo a idéia.
alguém pode me ajudar? por exemplo se o usuario digitar 2
0 1
1 0

public class Matriz {
	
	int flab[][];
	int num;
	
	Random rd = new Random();
		
	public void imprimeMatriz(){
		
	for(int i = 0; i < (num-1); i++){
		for(int j = 0 ; j < (num-1); j++){
			flab = new int[num][num];
			
			flab[i][j] = rd.nextInt(2);
			
	 		System.out.println(flab[i][j]);	
	   }
       }
    }
}

public class Teste {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Matriz matriz = new Matriz();
		matriz.num = Integer.parseInt(JOptionPane.showInputDialog(null, "Digite um tamanho de matriz"));
		matriz.imprimeMatriz();
	}
}

oi,

tente com i e j menor do que num e nao menor do que num-1

abs

Tire a linha 12 daí. Você está tentando construir o array dentro do for, ou seja, a cada loop você tenta construir o array. Faço isso uma vez e antes for.
E preste atenção no que o André escreveu.

Boa sorte!

Eu fiz as alterações conforme me indicaram porém ainda imprime no caso de uma matriz 2x2 por ex
0
1
0
1
quando eu queria
01
01

Veja se isso te ajuda.

[code]import java.util.Random;
import javax.swing.JOptionPane;
class Matriz {
int flab[][];
int num;

Random rd = new Random();
public void imprimeMatriz(int coluna, int linha){
flab = new int[coluna][linha];
for(int i = 0; i < coluna; i++){
for(int j = 0; j < linha; j++){
flab[i][j] = rd.nextInt(2);
System.out.print(flab[i][j] + “” + flab[i][j] + “\n”);
}
}
}
}

public class Teste {
public static void main(String[] args) {
int tamanho = 0;
Matriz matriz = new Matriz();
tamanho = Integer.parseInt(JOptionPane.showInputDialog(null, “Digite um tamanho de matriz”));
matriz.imprimeMatriz(tamanho, tamanho);
}
}
[/code]

Eu fiz desta forma porém está imprimindo se digito 2 (2x2) imprime uma matriz 2x4 não estou conseguindo entender.

Veja o meu código se tem algo errado por favor:

public class Matriz {

	int i, j;
	Random rd = new Random();

	public void imprimeMatriz(int coluna, int linha) {

		int flab[][] = new int[coluna][linha];

		for (i = 0; i < coluna; i++) {
			for (j = 0; j < linha; j++) {

				flab[i][j] = rd.nextInt(2);

				System.out.print(flab[i][j] + " " + flab[i][j] + "\n");

			}

		}
	}

}

public class Teste {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int tamanho = 0;

		Matriz matriz = new Matriz();

		tamanho = Integer.parseInt(JOptionPane.showInputDialog(null,
				"Digite um tamanho de matriz"));

		matriz.imprimeMatriz(tamanho, tamanho);

	}

}

Você está imprimindo 2 vezes a mesma posição da sua matriz, o certo seria

			for (i = 0; i < coluna; i++) {   
				for (j = 0; j < linha; j++) {   
					
					flab[i][j] = rd.nextInt(2);   
					
					System.out.print(flab[i][j]+ " ");   
					
				}   
				System.out.print("\n");
				
			} 

Valeu galera, obrigado a todos.