Ajuda como criar um metodo para excluir

4 respostas
I

Bom dia amigos estou começando a aprender java faz 1 mês mais ou menos e tenho um programa que meu professor pediu pra fazer ele é mais ou menos assim: Cadastrar professor e excluir professor o metodo para cadastar eu fiz mas o de excluir não estou conseguindo alguém pederia me ajudar.

Meu código da Classe Professor
import javax.swing.JOptionPane;

public class Professor {
	
	private int CodProf;
	private String NomeProf;
	
	public void InserirProfessor (int codiProf , String nmProf)
	{
		CodProf = codiProf;
		NomeProf = nmProf;
	}
	
	public void ExcluirProfessor()
	{
	                       	
	}

}
e Classe que inicia é essa:
import javax.swing.JOptionPane;

public class IniciarProfessor {
	private static Vector vetor = new Vector();

	public static void main (String args[])
	{
		
		int codPrf;
     	String cont = null;
    	String nmProf = null;
    	
    	Professor progProf = new Professor();
    	
    	while (cont != "100")
    	{
    		
    		String Opcs = JOptionPane.showInputDialog(null,"Escolha o que você deseja fazer:\n \n 1- Cadastrar Professor \n" +
					" 2- Excluir Professor \n ","Opções",JOptionPane.YES_NO_CANCEL_OPTION);
    	    int a = Integer.parseInt(Opcs);
    	    
    	    if (a == 1)
    	    {
    	    	String NomeProf = JOptionPane.showInputDialog(null,"Digite o " +
						"Nome:","Cadastro",JOptionPane.QUESTION_MESSAGE);
    	    	nmProf = NomeProf;
    	    	
    	    	String CodProf = JOptionPane.showInputDialog(null,"Digite o " +
    	    			"Código:","Cadastro",JOptionPane.QUESTION_MESSAGE);
    	    	int code = Integer.parseInt(CodProf);
    	    	codPrf = code;
    	    	
    	    	JOptionPane.showMessageDialog(null,"O Cadastro foi concluido com sucesso!");
    	    	
    	    }
    	    
    	    else if (a == 2)
    	    {
                                   

    	    }
    	    
			// Tela que pede se deseja continuar ou não
			String Sair = JOptionPane.showInputDialog(null,"Deseja Continuar:\n[1] SIM\n[2] NÂO \n","Deseja Continuar",JOptionPane.PLAIN_MESSAGE);
	        double saida = Integer.parseInt(Sair);
	        if (saida == 2) // Se for igual a 2 o programa finaliza
	        {
	        	cont = "100";
	        }
    	
	}
  }
}

Espero que alguém tenha entendido o que eu quero.

4 Respostas

M

Não sei se entendi muito bem, mas vamos lá. Acho que o método InserirProfessor não deveria está na classe Professor, no lugar deste método vc poderia coloca o construtor da classe (e.g public Professor(int codiProf , String nmProf)), depois vc faz os gets e os sets da classe(opcional). Já na classe IniciarProfessor quando o usuário escolher para inserir vc adiciona uma nova instância de Professor ao Vector(eu acho q foi por isso q vc colocou no código), tendo como indice o código do professor. Quando o usuário quiser deletar ele simplesmente escolhe o código do professor e deleta do Vector. Creio eu que não precise colocar inserir,deletar,editar na classe Professor, esses métodos vc poderia colocar, se vc quisesse, dentro de uma outra classe que gerenciaria os seus eventos, mas isso é outra história, neste caso vc estaria usando o modelo de projeto baseado no padrão MVC.

C

public class Professor {

private int CodProf;

private String NomeProf;

private Vector<Professor> professores = new Vector<Professor>();
public void InserirProfessor (int codiProf , String nmProf)

{

p = new Professor(codiProf, nmProf);

professores.add§;

}
public void ExcluirProfessor(Professor p)

{

professores.remove§;

}

}

ACho que uma solução semelhante a esta funcionaria…mas voce pode separar em mais classes para um melhor entendimento…
Qualquer coisa me manda um email dai eu te explico melhor

M

Soh mais um detalhe IC3MAN:

Cada um temum jeito de escrever código, mas é preferivel usar o padrão do java, que a maioria do pessoal usa. Isso pode facilitar bastante o entendimento do codigo:

  • Nome de classe Inicia com Letra maiúscula(MinhaClasse).
  • Nome de metodo inicia com letra minuscula(meuMetodo).
  • nome de variaveis inicia com letras minúsculas(minhaVariavel).
  • Nome de constantes com letras maiusculas(MINHA_CONSTANTE).

Se você usar este padrao, vai ser mais facil de entender o seu codigo e o codigo dos outros tbm.

M

Eu faria isso (código abaixo), pode até nao ser a melhor solucao, mas prefiro assim(Obs: os erros nao foram tratados). Utilizei alguns trechos do teu código.

public class Professor {
	private int codProf;
	private String nomeProf;
	
	/**
	 *Instancia uma nova classe com determinado código e nome
	 *@param codProf- inteiro representando o código do professor
	 *@param nomeProf- string representando o nome do professor  
	 */	 
    public Professor(int codProf, String nomeProf) {
    	this.codProf = codProf;
    	this.nomeProf = nomeProf;		
    }
    
    /**
     *Modifica o código do professor
     *@param codProf- inteiro representando o código do professor
     */
    public void setCodProf(int codProf){
    	this.codProf = codProf;
    }
    
    /**
     *Modifica o nome do professor
     *@param codProf- string representando o nome do professor
     */
    public void setNomeProf(String nomeProf){
    	this.nomeProf = nomeProf;
    }
    
    /**
     *Retorna o código do professor
     *return um inteiro representando o código do professor  
     */
    public int getCodProf(){
    	return this.codProf;
    }
    
    /**
     *Retorna o nome do professor
     *return uma String representando o nome do professor  
     */
    public String getNomeProf(){
    	return this.nomeProf;
    }
    
    /**
     *Concatena e retorna os atributos do professor
     *return uma String concatenada com os atributos do professor   
     */
    public String toString(){
    	return "Código do professor: "+this.codProf+
    		   "\nNome do Professor : "+this.nomeProf;
    }    
    
}
import java.util.Vector;
import java.util.Enumeration;

public class TratamentoEventosProfessor {
	private Vector vectProf;
    
    public TratamentoEventosProfessor() {
    	vectProf = new Vector(); 
    }
    
    public void inserir(Professor professor){
    	vectProf.add(professor);
    }
    
    public boolean excluir(int codProf){
		Professor professor;
		for (Enumeration e = vectProf.elements() ; e.hasMoreElements() ;){ 
        	professor = (Professor)e.nextElement();
        	if(professor.getCodProf() == codProf){
        		return vectProf.remove(professor);
        	}
		}
		
		return false; 
    }
    
    public Professor getProfessor(int codProf){
    	Professor professor;
		for (Enumeration e = vectProf.elements() ; e.hasMoreElements() ;){ 
        	professor = (Professor)e.nextElement();
        	if(professor.getCodProf() == codProf){
        		return professor;
        	}
		}
		
		return null; 
    }
    
    public void excluirTudo(){
    	vectProf.clear();	
    }
}
import javax.swing.JOptionPane;

public class IniciarProfessor {
   public static void main (String args[])
   {
      		      
       	TratamentoEventosProfessor teProfessor = new TratamentoEventosProfessor();
        String cont = null; 
        	
		while (cont != "100")
		{
          
          String Opcs = JOptionPane.showInputDialog(null,"Escolha o que você deseja fazer:\n \n 1- Cadastrar Professor \n" +
               " 2- Excluir Professor \n ","Opções",JOptionPane.YES_NO_CANCEL_OPTION);
           int a = Integer.parseInt(Opcs);
          
           if (a == 1)
           {
              String nomeProf = JOptionPane.showInputDialog(null,"Digite o " +
                  "Nome:","Cadastro",JOptionPane.QUESTION_MESSAGE);
                            
              String codProf = JOptionPane.showInputDialog(null,"Digite o " +
                    "Código:","Cadastro",JOptionPane.QUESTION_MESSAGE);
              
              teProfessor.inserir(new Professor(Integer.parseInt(codProf),nomeProf));
              
              JOptionPane.showMessageDialog(null,"O Cadastro foi concluido com sucesso!");
              
           }
          
           else if (a == 2)
           {
           		String codProf = JOptionPane.showInputDialog(null,"Digite o " +
                    "Código:","Excluir",JOptionPane.QUESTION_MESSAGE);
              if(teProfessor.excluir(Integer.parseInt(codProf)))                     
			  	 JOptionPane.showMessageDialog(null,"Opereção realizada com sucesso!");
           	  else
           	  	JOptionPane.showMessageDialog(null,"Erro!");
           }
          
         // Tela que pede se deseja continuar ou não
         String Sair = JOptionPane.showInputDialog(null,"Deseja Continuar:\n[1] SIM\n[2] NÂO \n","Deseja Continuar",JOptionPane.PLAIN_MESSAGE);
           double saida = Integer.parseInt(Sair);
           if (saida == 2) // Se for igual a 2 o programa finaliza
           {
              cont = "100";
           }
       
   }
  }
}
Criado 10 de abril de 2007
Ultima resposta 11 de abr. de 2007
Respostas 4
Participantes 4