Visual – JTabbedPane – Tab Control – Java

Publicado: 7 de abril de 2014 em Java

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

			}
		});

	}
}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s