Mandar Dados para Outras Telas JavaFx

tentei sim porem acredito que fiz da maneira errada pq não roda, to desde sexta tentando fazer da maneira que ele disse so que nao consigo colocar no meu codigo

Vamos la’ então, em programação existem muitas formas de fazer a mesma coisa.
Essa que vou te passar funciona da seguinte forma :

A referencia da aplicação principal e’ passada para o(s) Controller(s) e a chamada do Logjn parte da aplicação principal e não o contrario.

Dentro do Controller(s) e’ criado um metodo, no caso foi escolhido o nome
.setApplication(AppMain) e todos os detalhes inclusive conexao com o BD são colocados dentro dele e não no
public void initialize(URL url, ResourceBundle rb) {}

Não sei se está usando o NetBeans, mas se não tiver é somente pegar os fontes e adapta-lo na IDE de seu gosto e testar.

fx.zip (133,6,KB)

Bons Codigos

1 curtida

Renald,

Seguem suas classes reescritas.

Só alterei as classes LoginController.java E PrincipalController.java.

Salve suas duas classes atuais, em algum outro local e substitua pelas classes que eu alterei.

Deve funcionar.

Percebi que você ainda está MUITO cru, com relação a certos assuntos que você já deveria dominar. Dessa forma, recomendo que você procure tópicos no google, ou mesmo aqui, no fórum, que falem sobre como abrir janelas. Pesquise também: “JavaFX como fazer ResouceBundle”.

Dê uma vasculhada na documentação do JavaFX: https://openjfx.io/ . Na busca, digite ResourceBundle e veja como tudo funciona. É em inglês, mas o chrome tem o tradutor.

A forma que você utiliza é simples e eficaz (instanciar o fxml e depois dar um ‘show’), porém você ainda não tem ideia de como é o código completo que faz isso acontecer.

O código que enviei é o código completo de como abrir uma janela e enviar informações de uma janela para a outra.

Te entreguei tudo de bandeja. Caso você não consiga fazer funcionar, aí só pesquisando, mesmo.

Abraço!

LoginController.java (4,8,KB) PrincipalController.java (3,4,KB)

1 curtida

Muito obrigado pela ajuda Alexandre, vou passar meu código para de acordo com o seu, eu tinha feito um jeito para fazer funcionar mas acho que foi Gambiara, na hora do login eu fiz uma variável static pegando o meu longID, dai la na minha principal eu fazia minha variável que era um label receber essa variável static do LoginController funcionou a priori, mas vou deixar o meu de acordo com o seu, De coração muito obrigaado a todos que me ajudaram 1!!!

Na realidade, a solução que você achou, não é errada (tanto que funcionou).

Porém, no momento em que você fechou a janela de login, a variável foi destruída, junto com a janela. Se você não precisa mais da variável, não há problema em destruí-la.

Porém, se quiser manter a variável com o ID do usuário sempre ativa, para todas as janelas que forem abertas, considere não fechar(destruir) a janela de login. Simplesmente, esconda ela. Dessa forma, a variável estática, que foi criada, estará sempre disponível.

De toda forma, estude sobre ResourceBundle e sobre os tipos de janelas (modal, etc). Você ainda vai se deparar com diversas situações, onde precisará usar tudo isso.

Abraço.

1 curtida