Como ocultar as guias do Jtabbedpane

Galera, estou tentando fazer uma tela onde terá um área para os botões e conforme eu clico nos botões vai mudando os painéis, tudo na mesma janela. Um amigo sugeriu que eu usasse o Jtabbedpane e ocultasse as guias, só que eu não estou achando essa opção, alguém pode me ajudar ? Ou sugerir alguma outra forma ?

andersongmp não sei se entendi ao certo tua dúvida, mas vamos lá.
Para você mudar entre um Jpanel e outro sem clicar lá na aba, vc pode utilizar o método:

E ai vc passa o índice JTabbedPane que você deseja exibir.

Qualquer coisa dá um grito ai.

Não dá para “ocultar as guias”. O que se faz é usar um CardLayout. Vou dar um exemplo daqui a pouco.

package guj;

import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.BoxLayout;
import java.awt.CardLayout;
import javax.swing.border.TitledBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

public class ExemploCardLayout extends JFrame {
    private JPanel pnlBotoes;
    private JButton btnClientes;
    private JButton btnProdutos;
    private JButton btnEstoque;
    private JPanel pnlCards;
    private JPanel pnlClientes;
    private JPanel pnlProdutos;
    private JPanel pnlEstoque;
    private JLabel lblClientesClientesClientes;
    private JTextField txtProdutosProdutosProdutos;
    private JButton btnEstoqueEstoqueEstoque;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ExemploCardLayout frame = new ExemploCardLayout();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ExemploCardLayout() {

        initComponents();
    }

    private void initComponents() {
        setTitle("ExemploCardLayout");
        setBounds(100, 100, 450, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().add(getPnlBotoes(), BorderLayout.WEST);
        getContentPane().add(getPnlCards(), BorderLayout.CENTER);
    }

    private JPanel getPnlBotoes() {
        if (pnlBotoes == null) {
            pnlBotoes = new JPanel();
            pnlBotoes.setLayout(new BoxLayout(pnlBotoes, BoxLayout.Y_AXIS));
            pnlBotoes.add(getBtnClientes());
            pnlBotoes.add(getBtnProdutos());
            pnlBotoes.add(getBtnEstoque());
        }
        return pnlBotoes;
    }

    private JButton getBtnClientes() {
        if (btnClientes == null) {
            btnClientes = new JButton("Clientes");
            btnClientes.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ((CardLayout) getPnlCards().getLayout()).show(getPnlCards(), "Clientes");
                }
            });
        }
        return btnClientes;
    }

    private JButton getBtnProdutos() {
        if (btnProdutos == null) {
            btnProdutos = new JButton("Produtos");
            btnProdutos.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ((CardLayout) getPnlCards().getLayout()).show(getPnlCards(), "Produtos");
                }
            });
        }
        return btnProdutos;
    }

    private JButton getBtnEstoque() {
        if (btnEstoque == null) {
            btnEstoque = new JButton("Estoque");
            btnEstoque.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    ((CardLayout) getPnlCards().getLayout()).show(getPnlCards(), "Estoque");
                }
            });

        }
        return btnEstoque;
    }

    private JPanel getPnlCards() {
        if (pnlCards == null) {
            pnlCards = new JPanel();
            pnlCards.setLayout(new CardLayout(0, 0));
            pnlCards.add(getPnlClientes(), "Clientes");
            pnlCards.add(getPnlProdutos(), "Produtos");
            pnlCards.add(getPnlEstoque(), "Estoque");
        }
        return pnlCards;
    }

    private JPanel getPnlClientes() {
        if (pnlClientes == null) {
            pnlClientes = new JPanel();
            pnlClientes.setBorder(new TitledBorder("Clientes"));
            pnlClientes.add(getLblClientesClientesClientes());
        }
        return pnlClientes;
    }

    private JPanel getPnlProdutos() {
        if (pnlProdutos == null) {
            pnlProdutos = new JPanel();
            pnlProdutos.setBorder(new TitledBorder("Produtos"));
            pnlProdutos.add(getTxtProdutosProdutosProdutos());
        }
        return pnlProdutos;
    }

    private JPanel getPnlEstoque() {
        if (pnlEstoque == null) {
            pnlEstoque = new JPanel();
            pnlEstoque.setBorder(new TitledBorder("Estoque"));
            pnlEstoque.add(getBtnEstoqueEstoqueEstoque());
        }
        return pnlEstoque;
    }

    private JLabel getLblClientesClientesClientes() {
        if (lblClientesClientesClientes == null) {
            lblClientesClientesClientes = new JLabel("Clientes Clientes Clientes");
        }
        return lblClientesClientesClientes;
    }

    private JTextField getTxtProdutosProdutosProdutos() {
        if (txtProdutosProdutosProdutos == null) {
            txtProdutosProdutosProdutos = new JTextField();
            txtProdutosProdutosProdutos.setText("Produtos Produtos Produtos");
            txtProdutosProdutosProdutos.setColumns(10);
        }
        return txtProdutosProdutosProdutos;
    }

    private JButton getBtnEstoqueEstoqueEstoque() {
        if (btnEstoqueEstoqueEstoque == null) {
            btnEstoqueEstoqueEstoque = new JButton("Estoque Estoque Estoque");
        }
        return btnEstoqueEstoqueEstoque;
    }
}

Exemplo:


É possível ainda setar o layout do frame como null, e posicionar o Jtabbedpane por meio do método:

Dai pode ficar melhor para vocÊ posicionar outros elementos, se for o caso.

[quote=urbgames]É possível ainda setar o layout do frame como null, e posicionar o Jtabbedpane por meio do método:

Dai pode ficar melhor para vocÊ posicionar outros elementos, se for o caso.[/quote]

Fico com medo de como é que eu determino o valor de y :slight_smile:

É que se mudar o look & feel vai ficar tudo bagunçado. Mesmo não mudando o look & feel, basta você rodar um programa com layout absoluto (null) em sistemas operacionais diferentes (onde a fonte padrão é diferente, como é o caso do Windows e do Linux) que as coisas ficam todas bagunçadas.

entanglement de fato você tem toda razão. É porque é já tentei utilizar o layout CardLayout com Jtabbedpane e outros elementos e ficaram um tanto bagunçados. Mas acompanho aqui a discussão, e espero ansiosamente também uma boa solução.

Certo. Assisti umas vídeo aulas e aprendi a fazer o CadLayout, só que fiz de outra maneira, eu criei vários painéis do mesmo tamanho, um sobreposto ao outro, e conforme clico nos botões os painéis são mostrados e ocultados, por enquanto está dando certo, tem algum problema de fazer assim ?