[Grupo de Estudos – Java] Segunda Janela com Interface

Hoje eu apresento uma segunda janela com interface gráfica, trazendo várias novidades.

A primeira é a introdução ao uso de botões. Graficamente é muito simples adicionar um botão [Button], assim como os campos de textos [TextField] e os rótulos [Label]. O esquema é sempre o mesmo, declara-se os componentes, configura-se os componentes e adiciona-se os componentes.

Outra novidade é o uso todo da janela em AWT, isto quer dizer que os componentes usados são todos do pacote AWT, quero frizar este ponto para comparar o próximo código, que será uma cópia deste, mas feito em JSwing.

Por fim temos a adição de um evento atrelado a um componente, no caso seria o ActionListener implementando funcionalidade para o botão da tela.

/**
 * @(#)Botao.java
 *
 *
 * @author Luciano Santos
 * @version 1.00 2010/4/8
 */

import java.awt.*; //importando todas as classes do pacote AWT e Swing para a classe Janela
import javax.swing.*;
import java.awt.event.*;//importando as classes do pacote de eventos do AWT, para que o botao funcione

public class Botao extends JFrame {
 //declarando componentes
 Label lblDigite,lblResultado;
 TextField txtNome;
 Button btnOk;

 public Botao(){
 setTitle("Botão de Ação");//definindo o titulo da janela

 setSize (800,80);//definindo tamanho e layout da janela
 setLayout(new FlowLayout()); //falaremos mais tarde sobre layouts

 setLocationRelativeTo(null);//centralizando a janela

 //definindo operação padrão para o botão fechar
 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//sem esta linha a janela não fecha pelo botão fechar.

 lblDigite = new Label("Digite seu nome ao lado e clique em Ok.");//configurando o label
 add (lblDigite);//adicionando o label configurado a janela

 txtNome = new TextField(15);//configurando o campo de texto pro tamanho 15
 add(txtNome);//adicionando o campo de texto configurado a janela

 btnOk = new Button("OK");//configurando o botao ok
 add(btnOk);//adicionando o botao configurado a janela

 lblResultado = new Label("                                       ");//Configurando o label para começar vazio
 add(lblResultado);//adicionando o label configurado

 //pondo o botao OK em espera
 btnOk.addActionListener(new Ok());
 }

 //atribuindo uma funcionalidade ao botao OK
 public class Ok implements ActionListener
 {
 public void actionPerformed(ActionEvent ev)
 {
 lblResultado.setText("Parabéns "+ txtNome.getText()+"!");
 }
 }

 public static void main(String[] args) {
 /*instanciando o método construtor
 *mais tarde falaremos sobre instâncias do Java
 */

 Botao ok = new Botao();//nesta linha o código carrega o construtor para memória, montando a tela NA MEMÓRIA
 //definindo a visibilidade da tela
 ok.setVisible(true);
 }

}

aguardo dúvidas…

4 Respostas para “[Grupo de Estudos – Java] Segunda Janela com Interface

  1. vc poderia enviar um outra janela como esta, mas com 2, ou 3 campos, tentei acrescentar mais campos, surgiu erros, pelo que eu vi no codigo, acho que eu deveria ter declarado esses campos, seria isso?
    Favor não acrescente nenhuma novidade, ou seja código novo, apenas acrescentes mais alguns campos.
    até mais

    • ok.

      sempre que for adicionar novos campos vc deve executar os 3 passos citados na mensagem:

      declara-se os componentes, configura-se os componentes e adiciona-se os componentes.

      Assim temos o novo código:

      novamente deixo em negrito os itens do esquema.

      /**
      * @(#)Botao2.java
      *
      *
      * @author Luciano Santos
      * @version 1.00 2010/4/8
      */

      import java.awt.*; //importando todas as classes do pacote AWT e Swing para a classe Janela
      import javax.swing.*;
      import java.awt.event.*;//importando as classes do pacote de eventos do AWT, para que o botao funcione

      public class Botao2 extends JFrame {
      //declarando componentes
      JLabel lblPrenome, lblNome, lblSobrenome,lblResultado;
      JTextField txtPrenome,txtNome, txtSobrenome;
      JButton btnOk;

      public Botao2(){
      setTitle(“Botão de Ação”);//definindo o titulo da janela

      setSize (600,100);//definindo tamanho e layout da janela
      setLayout(new FlowLayout()); //falaremos mais tarde sobre layouts

      setLocationRelativeTo(null);//centralizando a janela

      //definindo operação padrão para o botão fechar
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//sem esta linha a janela não fecha pelo botão fechar.

      lblPrenome = new JLabel(“Prenome”);//configurando o label
      add (lblPrenome);//adicionando o label configurado a janela

      txtPrenome = new JTextField(8);//configurando o campo de texto pro tamanho 8
      add(txtPrenome);//adicionando o campo de texto configurado a janela

      lblNome = new JLabel(“Nome”);//configurando o label
      add (lblNome);//adicionando o label configurado a janela

      txtNome = new JTextField(8);//configurando o campo de texto pro tamanho 8
      add(txtNome);//adicionando o campo de texto configurado a janela

      lblSobrenome = new JLabel(“Sobrenome”);//configurando o label
      add (lblSobrenome);//adicionando o label configurado a janela

      txtSobrenome = new JTextField(8);//configurando o campo de texto pro tamanho 8
      add(txtSobrenome);//adicionando o campo de texto configurado a janela

      btnOk = new JButton(“OK”);//configurando o botao ok
      add(btnOk);//adicionando o botao configurado a janela

      lblResultado = new JLabel(“”);//Configurando o label para começar vazio
      add(lblResultado);//adicionando o label configurado

      //pondo o botao OK em espera
      btnOk.addActionListener(new Ok());
      }

      //atribuindo uma funcionalidade ao botao OK
      public class Ok implements ActionListener
      {
      public void actionPerformed(ActionEvent ev)
      {
      lblResultado.setText(“Parabéns “+ txtPrenome.getText()+” “+ txtNome.getText()+” “+ txtSobrenome.getText()+”!”);
      }
      }

      public static void main(String[] args) {
      /*instanciando o método construtor
      *mais tarde falaremos sobre instâncias do Java
      */

      Botao2 ok2 = new Botao2();//nesta linha o código carrega o construtor para memória, montando a tela NA MEMÓRIA
      ok2.setVisible(true);//definindo a visibilidade da tela
      }

      }

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