Seja bem vindo ao Fórum do JavaFree.org
Aqui você irá encontrar respostas para TUDO o que você precisa sobre java.
Deseja participar? Crie sua conta ou efetue seu login
Possuo um JTextField nome e uma String nome que uso para converter o JTextField para usar em outra classe pois a outra classe gera um pdf que não aceita JTextField.
Classe1
Classe2
Isto é um exemplo do que estou fazendo, não quis copiar pois está muito grande as classes!
Creio eu que isto teoricamente deveria funcionar porém ao imprimir irá retornar null. (Ou seja quando inicializei a Classe1 na Classe2 era zerou as variáveis).
ISto é um pouco lógico pois ao fazer new Classe1 tudo irá retornar ao seu estado de inicio, então vocês me recomendariam criar uma variável dentro do método modificador:
Infelizmente e impressionantemente não funciona o compilador acusa a variável n não existir na Classe1(Lógicamente pois ela só inicia no método).
Pensei em usar o Static mas sei que isso é uma má prática de programador e quero escrever meu código dentro das normas!
Poderiam me ajudar?
Achei que ja tinha passado desta fase de problemas de instancias ¬¬ _________________Java é o poder!
Está um pouco confuso o que vc fez, pelo menos para mim...
Mas, aparentemente, vc fez a classe que tem os métodos getNome e setNome na mesma classe que possui o JTextField...
Sendo assim, quando preencher o JTextField, vc estará modificando a classe em si e não uma instância dela!
Isso por si só é ruim ao meu ver.
Agora, se o que acontece é diferente do que eu falei, sobre a Classe1 ser também a classe de interface gráfica(que possui o JTextField), então acredito que o problema é simplesmente de inicialização.
Eu não saquei o pq de vc tentar fazer um construtor da Classe1 dentro da Classe2! Vc deveria inicializar a variável na Classe1. _________________ION, you're mine.
Mas amigo para que eu vou fazer condições se eu ja sei que ele está retornando null!
Se ele está retornando NULL, significa que ele não recebe nada. Se ele não recebe nada, fazer testes condicionais podem levar ao MOTIVO disso acontecer. _________________ION, you're mine.
A idéia do construtor geralmente é zerar as variáveis.. vc está "construindo" um objeto novo, ou seja, sem relação com objetos anteriores.
Se você quiser ter apenas uma instancia do objeto em todo o seu sistema utilize o padrão Singleton que o simu passou no outro tópico..
Mas caso você não queira usá-lo, você vai ter q passar uma referencia do objeto que você alterou para utilizar os gets dele na outra classe...ou então passar os valores dele diretamente no construtor da classe que os utiliza.
Aparentemente voce esta instanciando classes mais de uma vez, desnecessariamente.
Porque não desenha um diagrama de sequencia? _________________Ricardo Artur Staroski, OCP-JP
Blumenau - SC
Thiago desculpa a demora para lhe enviar é que estou com o tempo corrido, mas ainda essa semana lhe envio desde já agradeço sua ajuda! _________________Java é o poder!
AAAA Leno olhando um site aqui descobri o porque deste erro, o programa não consegue localizar tão classe isso decorre por eu ter adcionado a Classe1 classe dentro do construtor da Classe 2.
Então o que eu coloco dentro do _________________Java é o poder!
AAAA Leno olhando um site aqui descobri o porque deste erro, o programa não consegue localizar tão classe isso decorre por eu ter adcionado a Classe1 classe dentro do construtor da Classe 2.
Então o que eu coloco dentro do
Você tem que passar uma instancia já inicializada da Classe1.
Se você está querendo utilizar os atributos dela sem zerar, significa que já existiu em algum ponto um objeto com os atributos preenchidos.
Você tem que passar esse objeto para a classe 2, em vez de instanciar novamente nela.
Assim você não irá perder o conteúdo do objeto da classe 1
AAAA Leno olhando um site aqui descobri o porque deste erro, o programa não consegue localizar tão classe isso decorre por eu ter adcionado a Classe1 classe dentro do construtor da Classe 2.
Então o que eu coloco dentro do
Você tem que passar uma instancia já inicializada da Classe1.
Se você está querendo utilizar os atributos dela sem zerar, significa que já existiu em algum ponto um objeto com os atributos preenchidos.
Você tem que passar esse objeto para a classe 2, em vez de instanciar novamente nela.
Assim você não irá perder o conteúdo do objeto da classe 1
Certo mas como eu poderia fazer isto, fiquei um pouco confuso não consigo pensar em nada como solução
São muitas respostas diversificadas! _________________Java é o poder!
jeanjnPosts:50
Bom dia!
Possuo um JTextField nome e uma String nome que uso para converter o JTextField para usar em outra classe pois a outra classe gera um pdf que não aceita JTextField.
Classe1
Classe2
Isto é um exemplo do que estou fazendo, não quis copiar pois está muito grande as classes!
Creio eu que isto teoricamente deveria funcionar porém ao imprimir irá retornar null. (Ou seja quando inicializei a Classe1 na Classe2 era zerou as variáveis).
ISto é um pouco lógico pois ao fazer new Classe1 tudo irá retornar ao seu estado de inicio, então vocês me recomendariam criar uma variável dentro do método modificador:
Infelizmente e impressionantemente não funciona o compilador acusa a variável n não existir na Classe1(Lógicamente pois ela só inicia no método).
Pensei em usar o Static mas sei que isso é uma má prática de programador e quero escrever meu código dentro das normas!
Poderiam me ajudar?
Achei que ja tinha passado desta fase de problemas de instancias ¬¬
_________________Java é o poder!
thiagovpalmeirPosts:1165
Nessa Classe 2 ela tem que ser a classe principal
jeanjnPosts:50
Acho que não amigo pois para isso precisarei declarar a variável como estática e isso é uma prática incorreta!
_________________Java é o poder!
MathewsMottaPosts:1020
Está um pouco confuso o que vc fez, pelo menos para mim...

Mas, aparentemente, vc fez a classe que tem os métodos getNome e setNome na mesma classe que possui o JTextField...
Sendo assim, quando preencher o JTextField, vc estará modificando a classe em si e não uma instância dela!
Isso por si só é ruim ao meu ver.
Agora, se o que acontece é diferente do que eu falei, sobre a Classe1 ser também a classe de interface gráfica(que possui o JTextField), então acredito que o problema é simplesmente de inicialização.
Eu não saquei o pq de vc tentar fazer um construtor da Classe1 dentro da Classe2! Vc deveria inicializar a variável na Classe1.
_________________ION, you're mine.
jeanjnPosts:50
Bom eu tentei de várias formas e ja rodei o google. Vou postar as duas classes aqui!
Talvez contenha muitos erros o código mas please concentre-se no problema em questão!
classe que precisa da variável nome para ser impressa no pdf
_________________Java é o poder!
jeanjnPosts:50
Bom para não ficarem um pouco perdido o focu está:
_________________Java é o poder!
thiagovpalmeirPosts:1165
Cara você tem essas linhas
tenta fazer isso
E nessas linhas você possui
tenta fazer assim
jeanjnPosts:50
Fiz exatamente o que mandou, porém o resultado foi:
Entrou nulo =[
Algo tão facil, tão dificil, kkkk.
Quando digita-se new Salvar();
As variáveis tornam-se vazias, o que fazer para evitar isso Oo
_________________Java é o poder!
MathewsMottaPosts:1020
O único jeito de 'n' ser nulo é se ele não receber o 'nomeStr'.

Tem certeza que o método 'setConverterParaString()' está sendo chamado?
Faça ele imprimir uma mensagem de confirmação!
_________________ION, you're mine.
thiagovpalmeirPosts:1165
Beleza tenta fazer o seguinte
faz uma condição ternária nas variáveis
por exemplo
é como um if else
jeanjnPosts:50
Mas amigo para que eu vou fazer condições se eu ja sei que ele está retornando null!
_________________Java é o poder!
MathewsMottaPosts:1020