Pessoal, fiz a seguinte classe abaixo, porem o metodo get está retornando null.
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */packageController;importjava.text.ParseException;importjavax.swing.JFormattedTextField;importjavax.swing.text.MaskFormatter;/** * * @author JavaX */publicclassConfigura{privateStringModelo;privateStringGera;privateStringContrato;privateStringPeso;privateStringPostagem;privateStringArquivo;privateStringContador;privateStringLocal;privateStringEstadual;privateStringNacional;privateMaskFormatterPostagemGet;privateJFormattedTextFieldData;//***** Começo Metodos Get(s) e Set(s) publicStringgetModelo(){returnthis.Modelo;}publicvoidsetModelo(Stringmodelo){this.Modelo=modelo;}publicStringgetGera(){returnthis.Gera;}publicvoidsetGera(Stringgera){this.Gera=gera;}publicStringgetContrato(){System.out.println("Metodo dentro de Configuração getContrato() = "+Contrato);returnthis.Contrato;}publicvoidsetContrato(Stringcontrato){this.Contrato=contrato;System.out.println("Metodo setContrato() = "+Contrato);}publicStringgetPeso(){returnthis.Peso;}publicvoidsetPeso(Stringpeso){this.Peso=peso;}publicStringgetPostagem(){try{//----- \PostagemGet=newMaskFormatter(Postagem);//-------\ Funções Para Formatar TextoPostagemGet.setPlaceholderCharacter('_');//-------/ }//------/catch(ParseExceptionErro){Erro.getMessage();}Data=newJFormattedTextField(PostagemGet);returnData.getText();}publicvoidsetPostagem(Stringpostagem){this.Postagem=postagem;}publicStringgetArquivo(){returnthis.Arquivo;}publicvoidsetArquivo(Stringarquivo){this.Arquivo=arquivo;}publicStringgetContador(){returnthis.Contador;}publicvoidsetContador(Stringcontador){this.Contador=contador;}publicStringgetLocal(){returnthis.Local;}publicvoidsetLocal(Stringlocal){this.Local=local;}publicStringgetEstadual(){returnthis.Estadual;}publicvoidsetEstadual(Stringestadual){this.Estadual=estadual;}publicStringgetNacional(){returnthis.Nacional;}publicvoidsetNacional(Stringnacional){this.Nacional=nacional;}//***** Final Metodos Get(s) e Set(s)//***** Final Carrega ComboBox}
se alguém souber a razão desse erro e poder me dar uma ajuda.
Primeiramente, deixe os atributos da classe sempre começando com letra minuscula. Ex: modelo, gera, contrato e caso tenha mais palavras, as proximas palavras com a primeira maisucula. Ex: enderecoCobranca, atributoComMaisPalavras, etc. Essa é a convenção Java
Quanto a sua pergunta… provavelmente, vc nao está setando um valor para ela antes… está instanciando e depois já dando get. É preciso dar um setModelo(“modelo”), ou inicializar com um valor padrão. Ex: private String modelo = “Modelo Padrão”;
J
JavaX_JavaX
valeu igor _ks , pelo retorno mais sim estou setando como segue abaixo
tando é que dou System.out.println("Metodo setContrato() = "+Contrato); ele retorna normal o valor
2 coisas para analisar…
Veja se teus comboBox.getSelectedItem() estão vindo valores corretamente…
E veja se a instancia que vc está usando para dar os sets é a mesma do get… e claro, que os sets sejam executados antes do get
J
JavaX_JavaX
igor_ks:
2 coisas para analisar…
Veja se teus comboBox.getSelectedItem() estão vindo valores corretamente…
E veja se a instancia que vc está usando para dar os sets é a mesma do get… e claro, que os sets sejam executados antes do get
igor_ks
é isso mesmo eu chamo a class de get e set em dois momento, um no formulário onde ele captura o comboBox, e em outra class onde eu preciso usar o que foi selecionado no comboBox, o problema está que quando cria a segunda instancia ele limpa o método get, preciso saber como resolver isso.
se você tiver alguma ideia .
grato javaX
I
igor_ks
É preciso utilizar a mesma instância… o mesmo objeto…
Pensa no velho exemplo da forma de bolo, onde:
A forma de bolo é a classe, e ela pode gerar diversos bolos, que são os objetos (as instancias)
Se vc tem dois bolos e der um setCobertura(chocolate) em um dos bolos, o outro certamente ficará sem cobertura, ou seja, se der um getCobertura() nesse outro bolo, ele não trará nada, pois ainda não foi setado nenhuma cobertura ainda, somente para o outro bolo.
J
JavaX_JavaX
igor_ks:
É preciso utilizar a mesma instância… o mesmo objeto…
Pensa no velho exemplo da forma de bolo, onde:
A forma de bolo é a classe, e ela pode gerar diversos bolos, que são os objetos (as instancias)
Se vc tem dois bolos e der um setCobertura(chocolate) em um dos bolos, o outro certamente ficará sem cobertura, ou seja, se der um getCobertura() nesse outro bolo, ele não trará nada, pois ainda não foi setado nenhuma cobertura ainda, somente para o outro bolo.
eu tenho esse get e set onde eu verifico no console que o set ta recebendo um valor porem o get não devolve o mesmo valor, entra valor e sai null alguém sabe dizer porque acontece isso?
S
staroski
Provavelmente você está chamando o set de um objeto e o get de outro.
Posta o código das classes onde você chama o set e o get.
T
Tayonan
Aqui é o meu metodo log que está na classe login por aqui faço o set de user, password e porta, detalhe usuario e senha funciona ok :
publicvoidlog(){Stringpass=newString(passwd.getPassword());UserDTOobjuserdto=newUserDTO();objuserdto.setUserDB(user.getText());objuserdto.setPassDB(pass);objuserdto.setPortDB(port.getText());//objuserdto.setPortDB(port.getText());try{UserDAOobjuserdao=newUserDAO();ResultSetrsuserdao=objuserdao.userAuth(objuserdto);if(rsuserdao.next()){MenuViewscreen=newMenuView();screen.setVisible(true);dispose();}else{JOptionPane.showMessageDialog(null,"User or password incorrect");}}catch(SQLExceptione){System.err.println(""+e.getMessage());JOptionPane.showMessageDialog(null,"User or password incorrect, verify your connection");}}
e aqui tenho a classe conexionDAO onde quero setar a porta e chamo o get:
Você está criando um novo objeto do tipo UserDTO e em seguida está chamando o método getPortDB().
Tem que chamar o método no mesmo objeto UserDTO que foi criado lá na classe Login
T
Tayonan
Acabei mudando o projeto, então acabei chamando o numero da porta de um arquivo txt porque pensei que seria interessante que o usuario não posso mudar ou não necessite digitar em cada entrada a porta kkkkkk mas antes testei como me sugeriu e funciona perfeitamente. Te agradeço pela força, Valeu.