Ajuda JOptionPane

5 respostas
O

Galera, quando o usuario digitar uma letra em vez de número, aparece a mensagem pra ele digitar um número.
Só que eu preciso que volte pro primeiro JOptionPane pro usuário digitar o tamanho da matriz novamente.

String tamanho = JOptionPane.showInputDialog("Informe a dimensão da matriz:", null);
		
		try {
			m_int_tamanhoMatriz = Integer.parseInt(tamanho);
			
		} catch (Exception e) {
			// TODO: handle exception
			System.out.println("Usuário não digitou número = "+e);
		}
		
		//se o usuario não digitar um número, aparece a mensagem
		if(m_int_tamanhoMatriz == 0)
		{
			JOptionPane.showMessageDialog(null, "Digite um número!!!");
		}

Alguém sabe como faço pra voltar o JOptionPane anterior?

5 Respostas

D

Experimente criar um boolean para controlar se foi digitado corretamente ou nao, e use com while, q faz com que enquanto o usuario estiver digitando errado, reinicia as mensagens do joptionpane…

The_Punisher

e cara blz?

Bem fiz um pequeno teste aqui e tenta utilizar uma variável de compararção:

boolean teste=false;
        while(teste==false){
             String tamanho = JOptionPane.showInputDialog("Informe a dimensão da matriz:", null);

             try {
                 int m_int_tamanhoMatriz = Integer.parseInt(tamanho);
                 JOptionPane.showMessageDialog(null, "Digitou número!");
                 teste=true;

             } catch (NumberFormatException e) {
                 // TODO: handle exception
                 JOptionPane.showMessageDialog(null, "Usuário não digitou número = "+e);
                 teste=false;
             }
        }

Testei e funcionou legal, mas qualquer coisa posta aí blz?

Flw abrax.

Marlon_Meneses
while (true) {
			String tamanho = JOptionPane.showInputDialog(
					"Informe a dimensão da matriz:", null);

			try {
				m_int_tamanhoMatriz = Integer.parseInt(tamanho);
				break;
			} catch (Exception e) {
				// TODO: handle exception
				System.out.println("Usuário não digitou número = " + e);
				
			}

			// se o usuario não digitar um número, aparece a mensagem
			if (m_int_tamanhoMatriz == 0) {
				JOptionPane.showMessageDialog(null, "Digite um número!!!");
			}
		}
HI7M4N

Sou meio iniciante em java mas vou me arriscar a responder essa…Você poderia usar um do while.

O

Dá hora, usei o while igual vcs disseram e funcionou.
Obrigado galera,

Abraço

Criado 11 de novembro de 2009
Ultima resposta 11 de nov. de 2009
Respostas 5
Participantes 5