Em interfaces gráficas de usuário (GUI), uma interface tabulada ou um Tab Control é um widget que permite a interação de vários documentos ou painéis para ser contido dentro de uma única janela, usando guias como um widget de navegação para alternar entre conjuntos de painéis.
JTabbedPane
Guias/ componentes são adicionados a um objeto JTabbedPane usando os métodos e AddTab ou insertTab. Uma aba é representada por um índice correspondente à posição em que foi adicionado em, em que a primeira guia tem um índice igual a 0 e a última aba tem um índice igual à contagem de guia menos 1.
Exemplo:
Neste exemplo criamos um painel tabulado com 3 guias onde na primeira e na segunda guia o usuário entrará com um numero inteiro e na terceira guia sobre o evento StateChange efetuaremos a soma dos números escolhidos.
Java
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
import javax.swing.JTextField;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class TabControl implements ChangeListener
{
// Declara componentes
JLabel rotulo1;
JLabel rotulo2;
JLabel rotulo3;
JPanel painel1;
JPanel painel2;
JPanel painel3;
JTabbedPane abas;
JTextField numero1;
JTextField numero2;
JLabel total;
public Container criaPainel()
{
// Cria painel do formulario
JPanel painel = new JPanel(new GridLayout(1,1));
// Cria componentes
rotulo1 = new JLabel("Escolha o primero numero inteiro:");
rotulo2 = new JLabel("Escolha o segundo numero inteiro:");
rotulo3 = new JLabel("Total da soma:");
numero1 = new JTextField();
numero2 = new JTextField();
total = new JLabel("0");
// Cria painel para a primeira aba
painel1 = new JPanel(new BorderLayout());
painel1.add(rotulo1, BorderLayout.PAGE_START);
painel1.add(numero1, BorderLayout.CENTER);
// Cria painel para a segunda aba
painel2 = new JPanel(new BorderLayout());
painel2.add(rotulo2, BorderLayout.PAGE_START);
painel2.add(numero2, BorderLayout.CENTER);
// Cria painel para a terceira aba
painel3 = new JPanel(new BorderLayout());
painel3.add(rotulo3, BorderLayout.PAGE_START);
painel3.add(total, BorderLayout.CENTER);
// Cria abas
abas = new JTabbedPane();
// Adiciona paineis nas abas
abas.addTab("Numeros 1", painel1);
abas.addTab("Numeros 2", painel2);
abas.addTab("Total", painel3);
// Cria evento para as abas
abas.addChangeListener(this);
// Adiciona abas ao painel do formulario
painel.add(abas);
// Retorna painel principal
return painel;
}
public void stateChanged(ChangeEvent arg0)
{
// Escolha indice da aba
if (abas.getSelectedIndex() == 2)
{
// Efetua calculo
int soma = Integer.parseInt(numero1.getText()) + Integer.parseInt(numero2.getText());
total.setText( Integer.toString(soma));
}
}
// Cria GUI
public static void criaGUI()
{
// Cria formulario principal
JFrame formulario = new JFrame("DA - Tabbed Panes");
formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// Cria instancia da classe
TabControl pass = new TabControl();
// Adiciona painel principal
formulario.setContentPane(pass.criaPainel());
formulario.setSize(300,110);
formulario.setVisible(true);
}
// Cria formulario
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
criaGUI();
}
});
}
}

