/* * 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(); } }); } }