/*
* Cadastro.java
*
* Criado em 20 de junho de 2009
*/
package pacote;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
/**
* A classe Cadastro mostra uma tela simples, sem funcionalidades,
* para um cadastro que pede nome e CPF.
*
* @author João Henrique Berg dos Santos
*
*/
public class Cadastro extends JFrame {
/**
* O serialVersionUID é usado na serialização de objetos.
*/
private static final long serialVersionUID = 2669706293215695509L;
private JTextField nome;
private JTextField cpf;
private JButton ok;
/**
* Cria uma instância da classe Cadastro.
*/
public Cadastro() {
super("Cadastro");
initComponents();
}
/**
* O método initComponents inicializa e insere os componentes na
* janela (GUI - Graphical User Interface). O segredo está em usar vários
* JPanel's com gerenciadores de layout diferentes de forma a montar uma GUI
* adequada. Para iniciantes a dica é sempre desenhar a tela desejada em uma
* folha de papel e traçar linhas horizontais e verticais de forma a ter uma
* idéia de como separar os componentes em grupos que possam ser inseridos em
* algum JPanel. Neste ponto escolhe-se quais os gerenciadores de layout cada
* JPanel terá de forma a obter o resultado final.
* A janela também possui um gerenciador de layout. Por padrão um JFrame tem
* no BorderLayout o seu gerenciador de layout. Isto pode ser alterado mas
* não foi feito aqui. Este exemplo é feito da seguinte forma:
* O JFrame usa um BorderLayout, o qual possui cinco partes, NORTH, EAST,
* WEST, SOUTH e CENTER. Apenas as partes CENTER e SOUTH são usadas aqui.Em
* CENTER é inserido um JPanel com gerenciador de layout FlowLayout (linha 68)
* e neste JPanel dois outros JPanel's com GridLayout como gerenciador de
* layout. Nestes são inseridos os JLabel's (linhas 70 e 71) e JTextField's
* (linhas 75 e 78) Os JTextField's são ajustados para terem um determinado
* tamanho (linhas 74 e 77). Na posição SOUTH do JFrame é inserido um JPanel
* que usa FlowLayout com posicionamento centralizado dos componentes
* (linha 81).
*/
public void initComponents() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel panel1 = new JPanel(new FlowLayout(FlowLayout.LEADING, 5, 5));
JPanel panel2 = new JPanel(new GridLayout(2, 1, 5, 5));
panel2.add(new JLabel("Nome:"));
panel2.add(new JLabel("CPF:"));
JPanel panel3 = new JPanel(new GridLayout(2, 1, 5, 5));
nome = new JTextField();
nome.setPreferredSize(new Dimension(250, 25));
panel3.add(nome);
cpf = new JTextField();
cpf.setPreferredSize(new Dimension(250, 25));
panel3.add(cpf);
panel1.add(panel2);
panel1.add(panel3);
JPanel panel4 = new JPanel(new FlowLayout(FlowLayout.CENTER));
ok = new JButton("Ok");
ok.setPreferredSize(new Dimension(50, 25));
panel4.add(ok);
getContentPane().add(panel1, BorderLayout.CENTER);
getContentPane().add(panel4, BorderLayout.SOUTH);
pack();
setVisible(true);
}
/**
* O método main é o ponto de entrada de uma aplicação Java.
*
* @param args Os argumentos da linha de comando.
*/
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new Cadastro();
}
});
}
}