Dúvida do livro Java como Programar questão 4.24-Palíndromo

Olá pessoal , gostaria de saber o que está errado no meu código . Trata-se da questão 4.24 do livro JAVA COMO PROGRAMAR 3ºEDIÇÃO (capa verde) . Meu problema não está em achar os PALÍNDROMOS OU NÃO PALÍNDROMOS meu problema está em: FAZER UM LAÇO DE REPETIÇÃO QUANDO O NÚMERO DIGITADO POSSUIR MAIS DE 5 DÍGITOS .

questão

4.24 Um Palíndromo é um número ou uma frase de texto lido da mesma forma tanto da esquerda para a direita como da direita para a esquerda. Por exemplo, cada um dos dígitos seguintes é um palíndromo:12321,55555,45554 e 11611.
Escreva um aplicativo que lê um inteiro de cinco dígitos e determina se ele é ou não um palíndromo. [/i][/u]Se o número não for de cinco dígitos, exiba um diálogo de mensagem de erro para indicar o problema ao usuário. Quando o usuário fechar o diálogo de erro, permita que o usuário digite um novo valor.[u][i]

MEU PROBLEMA É COMO FAZER ELE REPETIR O LAÇO, SEI QUE NÃO SE TRATA DE NADA COMPLEXO PORÉM, QUERO MUITO APRENDER JAVA E ESTOU FAZENDO TODAS AS QUESTÕES DO LIVRO SOZINHO MAS PRECISO MESMO DA AJUDA DE PESSOAS MAIS EXPERIENTES EM ALGUMAS QUESTÕES, DESDE JÁ GRATO PELA AJUDA!!!

[code]
import javax.swing.JOptionPane;

public class Questao4_24 {

/**
 * @param args
 */
public static void main(String[] args) {
	// TODO Auto-generated method stub
	
	String num;
	int numero,n1,n2,n3,n4,n5,aux;
	
	num = JOptionPane.showInputDialog(" Entre com um numero de 5 digitos ");
	numero = Integer.parseInt(num);
	
	while(numero <= 999999){
			if(numero <= 99999){
				
				n1 = (numero/10000);
				aux =(numero%10000);
				n2 = (aux/1000);	
				aux = (numero%1000);
				n3 = (aux/100);
				aux = (numero%100);
				n4 = (aux/10);
				aux = numero%10;
				n5 = aux;
			
				if (n1 == n5)
				{
					if(n2==n4){
							System.out.println(" PALINDROMOS");
							System.exit(0);
						}	
					else{
							System.out.println("NÃO SÃO PALINDROMOS");
							System.exit(0);
						}
				}else
					{
						System.out.println("NÃO SÃO PALINDROMOS");
						System.exit(0);
					}
				}
			
			JOptionPane.showMessageDialog(null,"VALOR INVALIDO ","SE LIGA ",JOptionPane.ERROR_MESSAGE);
			num = JOptionPane.showInputDialog(" DIGITE NOVO VALOR ");
			numero = Integer.parseInt(num);
			
		
			}
				
	JOptionPane.showMessageDialog(null,"VALOR INVALIDO ","SE LIGA ",JOptionPane.ERROR_MESSAGE);
	num = JOptionPane.showInputDialog(" DIGITE NOVO VALOR ");
	numero = Integer.parseInt(num);
}

} [/code]

quando vc usa o Systen.exit(0) vc interrompe o programa vc deveria usar o continue e fazer o input de dados logo abaixo do while.

Pode fazer assim:

[code]

//cria a string de tamanho zero, pq está fazia.
String num = “”;

            //testa a string enquanto ela tiver tamanho diferente de 5 -> o método length() verifica o tamanho de uma string
	while (num.length() != 5) {
		num = JOptionPane.showInputDialog(" Entre com um numero de 5 digitos ");
	}

	int numero,n1,n2,n3,n4,n5,aux;		
	numero = Integer.parseInt(num);	

…[/code]