Acessar componente(label, button etc) entre telas diferentes JavaFx

18 respostas
C

Situação: Tenho um Scene principal(fxml), este por sua vez tem um button, ao clicar neste button abre um segundo Scene(detalhe - esse abre como filho). Minha dificuldade é, quero acessar qualquer componente do Scene principal através do Scene filho. É possível? Se sim me ajudem.

18 Respostas

J

Essa pergunta é sempre recorrente aqui no forum.
Basta passar como parametro a Classe principal e atraves dela ter o acesso a todas as Scene(s).

Dá uma olhada na Controller.
Se procurar aqui mesmo nesse forum vai ver que tem exemplos, Eu mesmo já postei.

Bons Codigos.

C

Obrigado Menezes. Vou buscar por aqui.

C

Menezes, minha cabeça está fervendo colega. O problema aqui penso eu tem uma peculiaridade, o scene que quero acessar já está aberto, não é uma boa prática de programação abrir um scene que já está aberto.

J

Sim, esta aberto e devidamente instanciado, entao se voce tiver a referencia dele na aplicação principal e for passada a referencia da aplicação principal a todos os Controller(s), terá acesso a tudo que importa. Eis a questão.

C

Menezes, sou novo no javafx, vc pode me dar um exemplo prático?

J

/uploads/short-url/1EhNOvOR8ZDbJgmw6ucyHgOxUjk.zip

Este exemplo foi feito usando NetBeans, mas para outras ides é tranquilo tambem.

C

Obrigado pela ajuda. Vou olhar agora

C

Menezes, estou desde as 14 horas da tarde de hoje tentando acessar o componente Button do meu Scene principal, mas sem sucesso, o seu exemplo é diferente do meu projeto. O seu fecha o login e abre a tela principal, ai é passado o parâmetro String; o meu projeto é assim: Abre a tela principal, e por dentro dela (VBox) abre uma segunda scene, esse scene é um login, e quero fazer o login e mudar a propriedade setVisible do Button(que esta no scene principal). O meu amigo me ajude ai, é muito importante.

J

Ok, ok, como diz Nelson Rubens. Mas voce está usando Java 8 ou superior ?, isso pra Eu fazer um exemplozinho em modular ou não.

C

Ide Intellij e Java 11, mas abri o seu exemplo no netbeans junto com java 8, tenho os dois Jdk instalados

J

Negocio o seguinte, vou mandar no Java 8 mesmo no Netbeans entao, depois vc passa pro modular.

C

Ok Menezes.

J

Mas, vc tera’ que esperar um poquinho. mas creio que ainda hj consigo ver e postar.
T+

C

Posso esperar sim. Vai salvar minha cabeça.eh eh eh

J

Veja se é + ou - isso que vc quer ?.

Mas nessa tecnica, é passada sempre a referencia da Aplicação principal a toda fxml, usando o metodo setApplication(SempreOMain). (esse nome é opcional)

Então o Main tem acesso a tudo e quando necessario atraves dele altera qualquer fxml ou programa.

fxx.zip (195,1,KB)

Bons Codigos

C

Menezes, obrigado pela atenção e ajuda meu amigo. Vou para o código agora.

C

Meu amigo Menezes, parabéns pelo seu conhecimento. Sucesso total no meu projeto. A comunidade Guj tem muito a agradecer a você.

J

Agradeço pelas palavras.

Criado 20 de setembro de 2020
Ultima resposta 23 de set. de 2020
Respostas 18
Participantes 3