Desenvolva um programa que entre com nome e uma matrícula. Seu programa deve validar o nome e a matrícula.

Eclipse

POO Java

31/05/2019

Olá a todos. Criei esse código e consegui executar a primeira tela. Mas preciso VALIDAR o Nome e a Matrícula e dá erro. Desde já agradeço. Segue o código:

package br.com.ead.matricula;

import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class AlunoTeste2 {

public static void main(String[] args) {

JTextField nome = new JTextField();
JTextField matricula = new JTextField();


Object[] escola = {
"Nome:", nome,
"Matrícula:", matricula,
};

JOptionPane.showConfirmDialog(null, escola,"Validação de Alunos- PROJEÇÃO", JOptionPane.OK_CANCEL_OPTION);

------------------------------------------------------------

A seguir criei esse código para tentar validar os campos mas não consigo "amarrar" os códigos, segue:

if(escola == null) {
JOptionPane.showMessageDialog(null, "Você pressionou CANCEL");
}
if (escola!=null) {
try {
int matricula = Integer.parseInt(escola);

if (matricula>=200010000 && matricula<202000000) {
JOptionPane.showMessageDialog(null, "Matrícula Confere "+"\\n"+matricula);
}
else {
JOptionPane.showMessageDialog(null, "Matrícula errada!");
}
}catch (NumberFormatException e) {
JOptionPane.showMessageDialog(null, "Entrada Errada");
}
}
Michael

Michael

Curtidas 0

Melhor post

Kleber Santos

Kleber Santos

01/06/2019

package br.com.ead.matricula;

import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class AlunoTeste2 {

    public static void main(String[] args) {

        JTextField nome = new JTextField();
        JTextField matricula = new JTextField();

        Object[] escola = {
            "Nome:", nome,
            "Matrícula:", matricula,	
        };	
        
       
        boolean vr = true; //verificador para sair do laço de repetição
        do{    
            JOptionPane.showConfirmDialog(null, escola,"Validação de Alunos- PROJEÇÃO", JOptionPane.OK_CANCEL_OPTION);
            int matriculaNum;
            try {               
                matriculaNum = Integer.parseInt(matricula.getText());
                System.out.println(matriculaNum);

                if (matriculaNum>=200010000 && matriculaNum<202000000) {
                    JOptionPane.showMessageDialog(null, nome.getText() + " Matrícula Confere "+"\\n"+matriculaNum);
                    vr = false;
                }
                else {
                    JOptionPane.showMessageDialog(null, "Matrícula errada!");
                }
            }catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Entrada Errada");
            }
        } while (vr);
        JOptionPane.showMessageDialog(null, "Fim!");
    }
}
GOSTEI 1

Mais Respostas

Michael

Michael

31/05/2019

package br.com.ead.matricula;

import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class AlunoTeste2 {

    public static void main(String[] args) {

        JTextField nome = new JTextField();
        JTextField matricula = new JTextField();

        Object[] escola = {
            "Nome:", nome,
            "Matrícula:", matricula,	
        };	
        
       
        boolean vr = true; //verificador para sair do laço de repetição
        do{    
            JOptionPane.showConfirmDialog(null, escola,"Validação de Alunos- PROJEÇÃO", JOptionPane.OK_CANCEL_OPTION);
            int matriculaNum;
            try {               
                matriculaNum = Integer.parseInt(matricula.getText());
                System.out.println(matriculaNum);

                if (matriculaNum>=200010000 && matriculaNum<202000000) {
                    JOptionPane.showMessageDialog(null, nome.getText() + " Matrícula Confere "+"\\\\\\\\\\\\\\\\n"+matriculaNum);
                    vr = false;
                }
                else {
                    JOptionPane.showMessageDialog(null, "Matrícula errada!");
                }
            }catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Entrada Errada");
            }
        } while (vr);
        JOptionPane.showMessageDialog(null, "Fim!");
    }
}





Entendi o conceito Kleber. Mas a validação do NOME eu posso colocar dentro desse Try-catch?
GOSTEI 0
Kleber Santos

Kleber Santos

31/05/2019

package br.com.ead.matricula;

import javax.swing.JOptionPane;
import javax.swing.JTextField;

public class AlunoTeste2 {

    public static void main(String[] args) {

        JTextField nome = new JTextField();
        JTextField matricula = new JTextField();

        Object[] escola = {
            "Nome:", nome,
            "Matrícula:", matricula,	
        };	
        
       
        boolean vr = true; //verificador para sair do laço de repetição
        do{    
            JOptionPane.showConfirmDialog(null, escola,"Validação de Alunos- PROJEÇÃO", JOptionPane.OK_CANCEL_OPTION);
            int matriculaNum;
            try {               
                matriculaNum = Integer.parseInt(matricula.getText());
                System.out.println(matriculaNum);

                if (matriculaNum>=200010000 && matriculaNum<202000000) {
                    JOptionPane.showMessageDialog(null, nome.getText() + " Matrícula Confere "+"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\n"+matriculaNum);
                    vr = false;
                }
                else {
                    JOptionPane.showMessageDialog(null, "Matrícula errada!");
                }
            }catch (NumberFormatException e) {
            JOptionPane.showMessageDialog(null, "Entrada Errada");
            }
        } while (vr);
        JOptionPane.showMessageDialog(null, "Fim!");
    }
}


Entendi o conceito Kleber. Mas a validação do NOME eu posso colocar dentro desse Try-catch?



import javax.swing.JOptionPane;
import javax.swing.JTextField;
 
public class teste{
 
    public static void main(String[] args) {
 
        JTextField nome = new JTextField();
        JTextField matricula = new JTextField();
 
        Object[] escola = {
            "Nome:", nome,
            "Matrícula:", matricula,    
        };  
         
        
        boolean vr = true; //verificador para sair do laço de repetição
        do{    
            JOptionPane.showConfirmDialog(null, escola,"Validação de Alunos- PROJEÇÃO", JOptionPane.OK_CANCEL_OPTION);
            int matriculaNum;
            try {               
                matriculaNum = Integer.parseInt(matricula.getText());
                System.out.println(matriculaNum);
                System.out.println("nome " + nome.getText());
                if (!"".equals(nome.getText())){ //se o campo nome.getText() for diferente de "" (nada) execute
                    if (matriculaNum>=200010000 && matriculaNum<202000000) {
                        JOptionPane.showMessageDialog(null, nome.getText() + " Matrícula Confere "+"\\n"+matriculaNum);
                        vr = false;
                    }
                    else {
                        JOptionPane.showMessageDialog(null, "Matrícula errada!");
                    }
                } else {
                    JOptionPane.showMessageDialog(null, "Coloque Nome");
                }
            }catch (NumberFormatException e) {
                //
                JOptionPane.showMessageDialog(null, "CATCH - digite um numero na matricula");
            }
        } while (vr);
        JOptionPane.showMessageDialog(null, "Fim!");
    }
}

Michael o Try-catch é uma forma de você trabalhar os erros do código.
Nesse código ele vai executar o catch caso seja digitado por exemplo uma letra no campo matricula, assim na linha "matriculaNum = Integer.parseInt(matricula.getText());" ele vai tentar converter essa letra em numero e vai ocasionar um erro que vai ser tratado dentro do catch.
GOSTEI 0
POSTAR