Abrir a segunda aba de um .java através de um botão de atalho

Boa noite gente… é a primeira vez que uso o GUJ.

Estou desenvolvendo um sistema em Java através do NetBeans e eu fiquei travado com uma questão, tentei até encontrar em diversos vídeos mas o que eu encontrei foi um pouco diferente do que eu quero fazer.

Eu criei uma Tela Principal, e nesta janela possui botões de ‘atalhos’, quando eu clicar nele, eu gostaria que ele abrisse outra janela e que abrisse diretamente outra aba que não fosse a primeira, porém, os vídeos que eu encontrei, só era criado um botão avançar mas dentro da mesma janela, tentei usar um this.jAbaY.setVisible(true); no botão de atalho da minha tela principal.java mas ele não abre a aba Y da ConsultaDocumentos.java.

Eu consigo somente abrir o atalho se eu usar o :

ConsultaDocumentos docs = new ConsultaDocumentos();
docs.setVisible(true);

mas neste caso ele abre diretamente na Aba X e não na Aba Y.

Alguém pode me ajudar?

Mas se você quer que a aba Y abra, defina isso via parâmetro.

1 curtida

Você está falando de um TabbedPane?
Você pode selecionar o índice (zero based) da aba que quer abrir:
seuTabbedPane().getModel().setSelectedIndex(1);
Se quiser que isso sempre aconteça pode colocar no construtor do frame mesmo, após criar o TabbedPane e adicionar os painéis.

Isso Daniel, ele é um JTabbedPane.

Por exemplo, eu tenho um ConsultaDocs.java nele possui duas abas :

a JPanel com o nome Documento1 e a JPanel com o nome Documento2

No meu TelaPrincipal.java tem dois botões de atalho, para abrir a janela na aba Documento1 é simples, pois é a primeira, então fiz:

ConsultaDocs docs = new ConsultaDocs();
docs.setVisible(true);

No caso, do segundo botão, eu quero que ele abra diretamente a aba Documento2, é aí que eu travo e não sei o que fazer.

Então, como eu falei aquele código coloca manualmente a seleção na aba desejada passando o seu índice, se é a segunda então o índice é 1.
Basicamente pra você fazer isso na tela depende do Design de como você se comunica com os componentes e etc… Você pode por exemplo passar este parâmetro para o construtor desta classe ConsultaDocs, pode ser um int indicando qual aba ele deve abrir ao exibir a tela.
Você cria o construtor (ou altera no caso a declaração já que ele já existe) que recebe o parâmetro:
public ConsultaDocs(int tabIndex)
E depois de criar o JTabbedPane e adicionar os painéis, no construtor mesmo, você coloca o índex passado por parâmetro com a linha de código que passei anteriormente:
seuTabbedPane().getModel().setSelectedIndex(tabIndex);
Então para abrir no primeiro botão você instancia a classe com o índex 0 e para o segundo botão você instancia a classe com índex 1.
ConsultaDocs docs = new ConsultaDocs(0);
ou
ConsultaDocs docs = new ConsultaDocs(1);