Boa tarde pessoal,
Gostaria de perguntar se existe alguma forma de inicializar uma tela passando algum argumento. Por exemplo no Java normal quando criamos a tela podemos passar alguns argumentos para a inicialização, como:
//Em Java
new Tela(arg1, arg2);
Ou pelo menos alguma forma de passar atributos para a nova tela.
Boa tarde!
Acho que a solução mais óbvia é trabalhar com variáveis estáticas e “getters e setters”.
[code]public class PrimeiraTelaController implements Initializable {
// Demais códigos…
SegundaTelaController.setVariavel(str1);
new SegundaTela().start(new Stage());
// Outros códigos…
}[/code]
[code]public class SegundaTelaController implements Initializable {
private static String variavel;
public static String getVariavel() {
return variavel;
}
public static void setVariavel(String variavel) {
SegundaTelaController.variavel = variavel;
}
// Demais códigos…
}[/code]
Veja se te ajuda…
Bom dia povo,
Achei outro jeito de fazer sem criar variáveis estatícas. É só linkar o elemento que quer mudar no fxml com uma classe de controle (aquela paradinha de por exemplo marcar um Label com @FXML) e criar um get/set para esse elemento ou qualquer outro atributo da classe. Depois é só carregar o fxml assim:
//Não pode esquecer do comando openStream()
root = (Parent) fxml.load(Class.class.getResource(
MsgConst.getDlgInfo()).openStream());
E depois carregar o controle:
MeuControle x = (MeuCotrole) fxml.getController();
Valeu pela ajuda, Valkyrium