Para criarmos uma melhor estrutura em uma aplicação com interface visual, podemos nos utilizar de 3 elementos da biblioteca Java Swing para criação de um containers. O container é o local onde podemos inserir campos de textos, menus, botões e assim criarmos uma aplicação com elementos visuais. Esses containers podem ser dos seguintes tipos:
– JFrame: janela principal do programa.
– JDialog: janela para diálogos.
– JApplet: janela para Applets.
No primeiro exemplo, veremos como criar uma janela com a classe JFrame, utilizando um layout do tipo FlowLayout e inserindo botões na mesma. Para isso, crie uma classe chamada Botao e digite o código a seguir, lembrando que deverão estar dentro do método Main:
JFrame frame = new JFrame("Bem-vindo"); // Definindo margem superior, esquerda, largura e altura e altura respectivamente frame.setBounds(200, 100, 300, 300); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Criando um layout do tipo FlowLayout FlowLayout layout = new FlowLayout(); Container caixa = frame.getContentPane(); caixa.setLayout(layout); for (int i = 1; i <= 10; i++) { caixa.add(new JButton("Botão " + i)); }
O resultado deverá ser algo semelhante a esta imagem:
No próximo exemplo, vamos criar um container do tipo JFrame, escolhendo um layout do tipo GridLayout. Nele, vamos inserir 3 botões e 1 campo de texto, dividindo a janela em grade, no formato 2 x 2 (duas linhas e duas colunas). Para isso, crie uma outra classe chamada Grade, com o método Main e o seguinte código:
JFrame frame = new JFrame(); frame.setVisible(true); frame.setBounds(200, 100, 200, 300); JPanel c = new JPanel(); c.setLayout(new GridLayout(2, 2)); c.add(new Button("um")); c.add(new TextField(5)); c.add(new Button("dois")); c.add(new Button("três")); frame.setContentPane(c);
Retornando valores
Para termos uma aplicação que retorne valores de um formulário por ex., e que esses valores possam ser salvos em um arquivo .txt ou até mesmo enviado para o banco de dados, podemos criar botões e incluir ações a ele. Neste exemplo, criaremos uma classe chamada Arquivo, onde criaremos um arquivo salvaremos os valores de um formulário neste arquivo criado.
public class Arquivo { Arquivo() { } public void escreve(String texto) throws IOException { // Criando o arquivo.txt File file1 = new File("arquivo.txt"); FileWriter writer = new FileWriter(file1); PrintWriter arquivo = new PrintWriter(new FileWriter("arquivo.txt")); arquivo.println(texto); arquivo.close(); } }
Agora, criaremos a classe Formulario, que conterá os campos a serem salvos no arquivo e as ações do botão cadastrar.
public class Formulario{ public Formulario() { initComponents(); } private void initComponents() { JFrame frame = new JFrame("Envio de dados."); JPanel panel = new JPanel(); JScrollPane jScrollPane1 = new JScrollPane(); JTextArea jTextArea1 = new JTextArea(5, 10); JTextField jText1 = new JTextField(10); JButton jButton1 = new JButton("Cadastrar"); JLabel jLabel1 = new JLabel("Nome: "); JLabel jLabel2 = new JLabel("Comentário: "); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.pack(); panel.add(jLabel1); panel.add(jText1); panel.add(jLabel2); panel.add(jTextArea1); panel.add(jButton1); frame.setContentPane(panel); frame.pack(); // Criando a ação do botão Cadastrar jButton1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { try { jButton1ActionPerformed(evt); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } // Inserindo os dados digitados no arquivo criado pela classe Arquivo private void jButton1ActionPerformed(ActionEvent evt) throws IOException { Arquivo arquivo1 = new Arquivo(); String texto = jTextArea1.getText() + ", " + jText1.getText(); arquivo1.escreve(texto); } }); } // Dentro do método Main será criada uma instancia de Formulario para ser executada public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Formulario(); } }); } }
Compile a classe Formulário e veja o resultado. Ao clicar no botão cadastrar, deverá ser criado um arquivo chamado arquivo.txt em seu projeto. Abra este arquivo e veja se os dados foram salvos com sucesso.
Complementando o exemplo, podemos criar uma janela do tipo JDialog para dar uma mensagem de dados cadastrados com sucesso.
Em um próximo tutorial mostrarei como fazê-lo. Até mais.
Uma consideração sobre “Interfaces gráficas com Java Swing”