O erro ocorre nessa linha? Poste a definição do método setTurmaProfessor
D
Delmar27
entanglement:
p.setTurmaProfessor(jTextField6.getText());
O erro ocorre nessa linha? Poste a definição do método setTurmaProfessor
Sim, nesta linha.
Classe Professor, com seus gets e sets:
publicclassProfessor{publicintcodigoProfessor;publicStringtelefoneProfessor;publicStringnomeProfessor;publicStringenderecoProfessor;publicStringnascimentoProfessor;publicStringemailProfessor;publicTurmaturmaProfessor;publicStringsexoProfessor;/** * @return the codigoProfessor */publicintgetCodigoProfessor(){returncodigoProfessor;}/** * @param codigoProfessor the codigoProfessor to set */publicvoidsetCodigoProfessor(intcodigoProfessor){this.codigoProfessor=codigoProfessor;}/** * @return the telefone */publicStringgetTelefoneProfessor(){returntelefoneProfessor;}/** * @param telefone the telefone to set */publicvoidsetTelefoneProfessor(StringtelefoneProfessor){this.telefoneProfessor=telefoneProfessor;}/** * @return the nomeProfessor */publicStringgetNomeProfessor(){returnnomeProfessor;}/** * @param nomeProfessor the nomeProfessor to set */publicvoidsetNomeProfessor(StringnomeProfessor){this.nomeProfessor=nomeProfessor;}/** * @return the endereco */publicStringgetEnderecoProfessor(){returnenderecoProfessor;}/** * @param endereco the endereco to set */publicvoidsetEnderecoProfessor(StringenderecoProfessor){this.enderecoProfessor=enderecoProfessor;}/** * @return the DataNascimento */publicStringgetNascimentoProfessor(){returnnascimentoProfessor;}/** * @param DataNascimento the DataNascimento to set */publicvoidsetNascimentoProfessor(StringNascimentoProfessor){this.nascimentoProfessor=nascimentoProfessor;}/** * @return the email */publicStringgetEmailProfessor(){returnemailProfessor;}/** * @param email the email to set */publicvoidsetEmailProfessor(StringemailProfessor){this.emailProfessor=emailProfessor;}/** * @return the turmaProfessor */publicTurmagetTurmaProfessor(){returnturmaProfessor;}/** * @param turmaProfessor the turmaProfessor to set */publicvoidsetTurmaProfessor(TurmaturmaProfessor){this.turmaProfessor=turmaProfessor;}/** * @return the sexoProfessor */publicStringgetSexoProfessor(){returnsexoProfessor;}/** * @param sexoProfessor the sexoProfessor to set */publicvoidsetSexoProfessor(StringsexoProfessor){this.sexoProfessor=sexoProfessor;}}
CadastrarProfessor:
packagegeresc.Professor;importgeresc.Aluno.cadastrarAluno;importgeresc.Conexao.Conexao;importjava.sql.ResultSet;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importjava.util.logging.Level;importjava.util.logging.Logger;importjavax.swing.JOptionPane;publicCadastrarProfessor(java.awt.Frameparent,booleanmodal){super(parent,modal);initComponents();jComboBox1.removeAllItems();jComboBox1.addItem("Masculino");jComboBox1.addItem("Feminino");try{List<String>dados=newArrayList<String>();Conexaoc=newConexao();Statementconex=c.conectar();ResultSetresultado=conex.executeQuery("SELECT nomeTurma FROM Turma");while(resultado.next()){dados.add(resultado.getString("nomeTurma"));}jList1.setListData(dados.toArray());}catch(Exceptionex){Logger.getLogger(cadastrarAluno.class.getName()).log(Level.SEVERE,null,ex);}}privatevoidjButton1ActionPerformed(java.awt.event.ActionEventevt){// TODO add your handling code here:try{// TODO add your handling code here:Professorp=newProfessor();p.setNomeProfessor(jTextField1.getText());p.setCodigoProfessor(Integer.parseInt(jTextField2.getText()));p.setEnderecoProfessor(jTextField3.getText());p.setTelefoneProfessor(jTextField5.getText());p.setEmailProfessor(jTextField4.getText());p.setNascimentoProfessor(jFormattedTextField1.getText());p.setSexoProfessor(jComboBox1.getSelectedItem().toString());p.setTurmaProfessor(jTextField6.getText());Repositorior=newRepositorio();r.inserir(p);JOptionPane.showMessageDialog(rootPane,"Professor cadastrado com sucesso");}catch(Exceptionex){JOptionPane.showMessageDialog(rootPane,ex.getMessage());}}
Fellipex
Amigo, você está tentando passar uma String(jTextField.getText), para um método que espera um objeto do tipo Turma.
Existe realmente a classe Turma?
Está correta esta modelagem? Ou turma do professor seria um atributo do tipo String mesmo, Ex: “Turma B”
Se realmente Turma for uma classe quais são os atributos desta classe?
Como eu disse anteriormente o erro é tentar passar um String que é o getText para o método setTurmaProfessor que espera um objeto do tipo Turma, porém não consigo lhe ajudar mais por falta de informações, se existir a classe Turma professor poste-a , senão altera para ser uma String. Att
marcelo.silva.java
primeiramente vc vai ter que fazer a composição
Professor p = new Professor();
Turma turma = new Turma();
p.turmaProfessor = turma;
feito isso vc tem que jogar o valor do textField mais ou menos assim
Amigo, você está tentando passar uma String(jTextField.getText), para um método que espera um objeto do tipo Turma.
Existe realmente a classe Turma?
Está correta esta modelagem? Ou turma do professor seria um atributo do tipo String mesmo, Ex: “Turma B”
Se realmente Turma for uma classe quais são os atributos desta classe?
Como eu disse anteriormente o erro é tentar passar um String que é o getText para o método setTurmaProfessor que espera um objeto do tipo Turma, porém não consigo lhe ajudar mais por falta de informações, se existir a classe Turma professor poste-a , senão altera para ser uma String. Att
É assim: turmaProfessor é uma chave estrangeira da classe Turma. A classe Turma realmente existe, sim. Sendo turmaProfessor uma FK o tipo tem que ser Turma, ou estou errado?
Só uma dica , acabei vendo o seu código e você pode mudar umas coisas. Altere todos os atributos do professor para PRIVATE ao invés de PUBLIC. Pois não é correto classes externas terem acesso diretamente aos atributos, justamente por isso você cria os getters e setters. E corrija isso também
Ali aonde você faz
//maneira errada de acessar atributos. Se forem privados(correto) não irá nem compilar.p.turmaProfessor=turma;
o corretor seria
p.setTurmaProfessor(turma)
Assim como você fez para os outros atributos, matendo o conceito de encapsulamento correto
D
Delmar27
Fellipex:
Só uma dica , acabei vendo o seu código e você pode mudar umas coisas. Altere todos os atributos do professor para PRIVATE ao invés de PUBLIC. Pois não é correto classes externas terem acesso diretamente aos atributos, justamente por isso você cria os getters e setters. E corrija isso também
Ali aonde você faz
//maneira errada de acessar atributos. Se forem privados(correto) não irá nem compilar.p.turmaProfessor=turma;
o corretor seria
p.setTurmaProfessor(turma)
Assim como você fez para os outros atributos, matendo o conceito de encapsulamento correto
Obrigado pela dica, Felipe. Vou corrigir isso agora mesmo.