JTabbedPane não aparece

3 respostas
G

Estou tentando criar um código para inserir novas abas em um TabbedPane a partir da ação de um botão. Quando eu insiro novas abas no TabbedPane pela interface do NetBeans, dá tudo certo! Mas qdo eu tento executar o código para inserir novas abas durante a execução do programa nada acontece! Não dá erro, mas também nada é inserido. Eu tentei seguir explicações contidas em 2 posts desse fórum, mas não deu certo. Acredito que alguma coisa possa ter mudado (os tópicos são bem antigos), por isso resolvi criar um novo. Segue o código que estou tentando fazer funcionar:

import javax.swing.*;

public class testeaba extends javax.swing.JFrame {
    private JTabbedPane tabbedPane;


    public testeaba() {
        initComponents();
         tabbedPane = new JTabbedPane();
        JComponent panel1=new JPanel();
        panel1.setName("painel 1");
        tabbedPane.addTab("Tab 1", new ImageIcon("C:/algumacoisa/Txt/pasta2/zip_unmount.png"), panel1,
                  "Does nothing");

         getContentPane().add(tabbedPane); 
    }
    //gerado pelo Netbeans
    private void initComponents() {

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 400, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 300, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>
    
    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new testeaba().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify
    // End of variables declaration
    
}

Quando executo isso, só aparece o JFrame com nada dentro. Nenhum erro ou exceção é lançada!

Obrigado.

3 Respostas

G

Consegui arrumar o código!
Eu estava confundindo o construtor com o run() e tinha coisa que eu achei que não estava funcionando quando na verdade não estava sendo executada… :oops:

Obrigado!

D

Se eu colocar tabs em uma tabela, fazendo com que em quada painel (separado por tabs) fique uma tabela com um banco de dados em uma e um banco de dados para salvar os cálculos em outro painel. Será que dar pra adicionar tabs em tabelas assim?

E se der, como é?

D

Veja se assim está bom para você:

import javax.swing.*;

public class testeaba extends JFrame { 
 
   private JTabbedPane tabbedPane;  
  
 //Componente buildPanel:
   public JComponent buildPanel() { 
   initComponents(); // chamada dos componentes criados no método abaixo 
   tabbedPane = new JTabbedPane();  
   JComponent panel1 = new JPanel();  
   panel1.setName("painel 1");  
   tabbedPane.addTab("Tab 1", new ImageIcon(
    "C:/Documents and Settings/Francis/Desktop/reescrevendo forms/img/left.gif"), panel1, "Abas");  
         getContentPane().add(tabbedPane); 
       return tabbedPane;
   }  
    
 //criando componentes: 
  private void initComponents() {  
    setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);  
        
    GroupLayout layout = new GroupLayout(getContentPane());  
     getContentPane().setLayout(layout);  
        
  layout.setHorizontalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)  
     .addGap(0, 800, Short.MAX_VALUE));  
  layout.setVerticalGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING)  
      .addGap(0, 600, Short.MAX_VALUE));  
  }
    
  
  public static void main(String args[]) { 
    testeaba t = new testeaba();  
    JComponent builder = new testeaba().buildPanel();    
    t.getContentPane().add(builder); 
    t.setVisible(true);
     t.pack();             
   }       
}
Criado 27 de maio de 2008
Ultima resposta 2 de jun. de 2008
Respostas 3
Participantes 2