[Resolvido] Criação de novas abas através de botão de ação
4 respostasResolvido
swingjava
E
EstevaoAnderle
Olá pessoal, estou desenvolvendo um projeto e nele inseri um botão cuja ação é criar novas abas em um JTabbedPane. Estou com dificuldade para fazer com que o aumento do tamanho do mesmo seja randômico e adicione as abas sempre ao lado direito, mas ao fazer tal ação, ele sempre adiciona a aba abaixo da aba padrão.
Imagino que preciso dobrar o tamanho do meu JTabbedPane e adicionar a nova aba, mas já tentei de algumas formas diferentes e todas sem sucesso. Alguém sabe como posso fazer isso?
Você tem que criar as abas através do método addTab(String nomeDaAba, Component componenteAserAdicionado ) da classe JTabbedPane.
Veja o método adicionarAba() no exemplo abaixo:
importjava.awt.BorderLayout;importjava.awt.Container;importjava.awt.Dimension;importjava.awt.FlowLayout;importjavax.swing.JButton;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTabbedPane;importjavax.swing.UIManager;publicclassProgramaextendsJFrame{privateJTabbedPanetabbedPane;publicstaticvoidmain(String[]args){try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());Programaprograma=newPrograma();programa.setDefaultCloseOperation(EXIT_ON_CLOSE);programa.setLocationRelativeTo(null);programa.setVisible(true);}catch(Throwablet){t.printStackTrace();}}Programa(){super("Meu Programinha");Dimensionsize=newDimension(800,600);setMinimumSize(size);setSize(size);Containercontainer=getContentPane();container.setLayout(newBorderLayout());JButtonbutton=newJButton("+");button.addActionListener(event->adicionarAba());JPanelpanel=newJPanel(newFlowLayout(FlowLayout.RIGHT));panel.add(button);tabbedPane=newJTabbedPane();container.add(panel,BorderLayout.NORTH);container.add(tabbedPane,BorderLayout.CENTER);}privatevoidadicionarAba(){intnumero=tabbedPane.getTabCount();JPanelpanel=newJPanel(newBorderLayout());panel.add(newJLabel("Esse é o JPanel "+numero));Stringtitulo="Aba "+numero;tabbedPane.addTab(titulo,panel);}}
E
EstevaoAnderle
Ótimo, funcionou!
A minha questão agora é que toda vez que eu clico em uma das abas, ele altera a posição das mesmas. Gostaria de deixar como o seu exemplo e não no formato abaixo:
Já tentei alterar as propriedades do jTabbedPane, mas sem sucesso.
S
staroski
Imagens não ajudam.
Posta o seu código e não esqueça de formatá-lo com o botão </>.
E
EstevaoAnderle
Não precisará, era uma propriedade padrão do jTabbedPane que estava influenciando. Tive que alterá-la de forma externa e com isso, o funcionamento está da forma desejada!