Olá pessoal peça a ajuda de vocês como eu faço para abrir uma nova janela que tem 2 abas indece 0 e 1 só que quero abrir ela no indece 1.
Esta funcionando assim a lógica eu tenho 2 janelas! A janela1 tem duas abas e na aba indece 1 tem um botão que chama a janela 2 para executar um metodo quando essa segunda janela executa o metodo finaliza com um dispose(); para fecha a janela 2 e cria uma nova instancia da janela 1 com o new Janela1().setVisible(true); só que quando a janala 1 abre é no indece 0, só que eu queria que abrice no indece 1 como faço ? sei que existe o comando .setSelectedIndex(1); onde 1 é o indice mais isso só funciona se estivesse na mesma janela
Por que está criando uma nova instância da janela 1?
Utiliza a mesma instância que você usou antes.
para ela poder carregar novamente o db com as informações atualizada do metodo da janela 2 vc conhece alguma forma para que eu possa carregar essa informações ou abrir a janela 1 no indece 1 nesta nova instancia?
Implementa um design patterns observer, também chamado de listener.
Cria um método na classe que te permita selecionar a aba desejada , por exemplo:
meuObjetoDaJanela1.selecionarAba(1);
obrigado esse lógica me ajudou, consegui fazendo um metodo publico na janela 1 que seleciona o comando .setSelectedIndex(1); de acordo com uma variavel model que eu exportei da janela 2
na janela 2 coloquei
ViewJan1 viewJan1 = new ViewJan1();
viewJan1 .exportarVarControl(modelVariavelControl);
viewJan1 .setVisible(true); //Abri outra janela
dispose(); //Fecha jan2
Dica:
Se você utilizar setVisible(false)
ao invés de dispose()
, não precisa ficar instanciando um novo objeto da tela, pode sempre reaproveitar a mesma instância.
Joia num tinha pensado nisso, obrigado vou fazer essa ideia!
Tendei sem o dispose() mais não consegui o código não aceita mais a ideia é boa!
existe alguma forma de fazer o setVisible(false) tipo assim viewJan1 .setVisible(false); sem antes instancia assim ViewJan1 viewJan1 = new ViewJan1();
exemplo fazer assim direto ViewJan1().setVisible(false); coloquei assim e o cógido não aceitou !