Visual – Controles – JCheckbox, JTextArea, JScrollPane, GridBagConstraints, Mnemônico, KeyEvent – Java

Publicado: 11 de março de 2014 em Java

Checkbox

A classe JCheckBox fornece suporte para os botões da caixa de seleção.

TextArea

A classe JTextArea fornece um componente que exibe várias linhas de texto, permitindo opcionalmente o usuário editar o texto.

ScrollPane

A JScrollPane fornece uma visão de rolagem de um componente. Quando a tela é limitada, use um painel de rolagem para exibir um componente que é grande ou um cujo tamanho pode mudar dinamicamente. Outros recipientes utilizados para economizar espaço na tela incluem painéis divididos por abas e painéis.

KeyEvent (mnemônico)

Geralmente a letra sublinhada no texto de cada componente mostra o mnemônico – a alternativa de teclado – para cada componente. Na maioria das GUIs Fell and Look, o usuário pode clicar em um componente, pressionando a tecla Alt e o mnemônico. Por exemplo, Alt+M. O KeyEvent é responsável pela definição do atalho no teclado, exemplo, KeyEvent.VK_M

GridBagConstraints

Uma classe que simplesmente armazena as informações para cada componente adicionado.  A propriedade Fill determina como redimensionar o componente.

Exemplo:

Neste exemplo criamos três componentes checkbox e uma caixa de texto a cada mudança do estado de cada checkbox adicionamos o texto correspondente a caixa de texto, para outros detalhes leia os comentários no código

Java

import java.awt.BorderLayout;
import java.awt.GridBagConstraints;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class MontaGUI extends JPanel implements  ItemListener
{
	// Declara Objetos
	JLabel rotulo;
	JCheckBox opc1;
	JCheckBox opc2;
	JCheckBox opc3;
	JTextArea texto;

	public MontaGUI()
	{
		// Cria novos Objetos
		rotulo = new JLabel("Escolha um Checkbox ou Alt + A, B ou C:");
		opc1 = new JCheckBox("Opção 1:");
		opc2 = new JCheckBox("Opção 2:");
		opc3 = new JCheckBox("Opção 3:");
		texto = new JTextArea(5,20);

		// Seta atalho do teclado ex: ALT + A ou B ou C
		opc1.setMnemonic(KeyEvent.VK_A);
		opc2.setMnemonic(KeyEvent.VK_B);
		opc3.setMnemonic(KeyEvent.VK_C);

		// Seta Evento
		opc1.addItemListener(this);
		opc2.addItemListener(this);
		opc3.addItemListener(this);

		// Seta texto não editavel
		texto.setEditable(false);

		// Cria barras de rolagem
		JScrollPane barra =  new JScrollPane(texto);

		// Seta restrições para barra de rolagem
		GridBagConstraints c = new GridBagConstraints();
        c.gridwidth = GridBagConstraints.REMAINDER;

        // Seta tamanho do preenchimento para as barras
        c.fill = GridBagConstraints.BOTH;
        c.weightx = 1.0;
        c.weighty = 1.0;

        // cria paineis
		JPanel painel1 = new JPanel();
		JPanel painel2 = new JPanel();
		JPanel painel3 = new JPanel();

		// adiciona componentes nos paineis
		painel1.add(rotulo);
		painel2.add(opc1);
		painel2.add(opc2);
		painel2.add(opc3);
		painel3.add(barra,c );

		// adiciona painel e centraliza
		add(painel1,BorderLayout.CENTER);
		add(painel2,BorderLayout.CENTER);
		add(painel3,BorderLayout.CENTER);

	}

	public void itemStateChanged(ItemEvent e)
	{
		// Evento de mudança de estado do checkbox

		// captura item celecionado
		Object fonte = e.getItemSelectable();

		// coloca o cursor no final do texto para efeito de rolagem
		texto.setCaretPosition(texto.getDocument().getLength());

		// Define click no checkbox
		if (fonte == opc1)
		{
			texto.append("Você clicou no CheckBox 1" + "\n");
		}

		if (fonte == opc2)
		{
			texto.append("Você clicou no CheckBox 2" + "\n");
		}

		if (fonte == opc3)
		{
			texto.append("Você clicou no CheckBox 3" + "\n");
		}

	}

	public static void main(String[] args) {

		// adicona thread do swing
		javax.swing.SwingUtilities.invokeLater(new Runnable() {

			@Override
			public void run() {

				// cria formulario
				JFrame formulario = new JFrame("Desenvolvimento Aberto");
				formulario.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

				// monta paineis de componetes no frame
				JComponent componentes = new  MontaGUI();
				componentes.setOpaque(true);

				// Seta propriedades do frame
				formulario.setContentPane(componentes);
				formulario.setSize(400, 250);
                formulario.setVisible(true);
			}
		});
	}

}
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