[RESOLVIDO]Swing - JTabbedPane, adicionar um evento ao trocar de aba
3 respostas
I
igor_henrique1
Boa noite galera, tudo em paz? Vamos ver quem me ajuda nessa rss…
Tenho uma JTabbedPane com duas abas, e tenho um método especifico que de ve ser executado quando o usuário está na primeira aba e troca para a segunda aba.
Tentei usar um focusGained no panel da segunda aba, mas não deu, eu precisava de algo ao trocar de aba mesmo, mas não achei nenhum evento ou não soube como manipula-lo corretamente
PS:Usei stateChange mas ele executa o método logo que abre a tela, e não é o que eu quero.
Mas a única maneira de fazer o que você quer é realmente stateChanged.
Entretanto, você tem de saber o que está acontecendo.
Um exemplo de como se usa stateChanged (quero imprimir alguma coisa quando entrar no segundo tab, que é retornado pelo método ‘getPnlSales()’) :
privateJTabbedPanegetTbpPanes(){if(tbpPanes==null){tbpPanes=newJTabbedPane();tbpPanes.addTab("Customers",null,getPnlCustomers(),"Customer data");tbpPanes.addTab("Sales",null,getPnlSales(),"Sale data");tbpPanes.addChangeListener(newjavax.swing.event.ChangeListener(){publicvoidstateChanged(javax.swing.event.ChangeEvente){if(tbpPanes.getSelectedComponent()==getPnlSales()){System.out.println("Entrou no painel 'Sales'");}}});}returntbpPanes;}
I
igor_henrique1
E ai entanglement, valeu pela resposta, resolveu pra mim com uma comparação mesmo…
apenas verifiquei se o componente selecionado da JTabbed era o componente que eu queria, se fosse true chamava o método.
Dessa forma ele ta chamando o método só quando troca pra aba especifica que era exatamente o que eu precisava…
ficou assim meu código.