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

