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);