Countdown

Final Countdown

Faltam dias. Ou segundos.

sábado, 7 de março de 2015

#3 Laços de Repetição & Interface Gráfica

Olha eu aqui de novo, pessoal!

Me desculpem se o ritmo estiver acelerado demais e alguns comandos ou técnicas passarem despercebidas. Tenho um cronograma da faculdade para seguir, sabem como é... Nesta segunda já devo publicar o conteúdo para uma calculadora com interface gráfica neste blog!























Figura 1 - Projeto de calculadora com interface gráfica.

A ideia original seria já começar com uma calculadora! E ainda por cima sem interface gráfica! Não acho que seria justo com quem estivesse aprendendo do zero Java. Mesmo já tendo alguma experiência com Java (e talvez principalmente por isso, o que me fez dar valor aos detalhes da linguagem e de conhecer bem o básico dela) resolvi começar as lições bem devagar para obter um domínio satisfatório da linguagem antes de começar com algum desafio.

---//---

[Laços de Repetição]

Muito bem, vamos começar com a teoria de laços de repetição. Basicamente, o que estiver dentro do corpo (das chaves) desse comando será repetido até completar determinada condição, no formato:
                                                        while (<condição de parada>){
                                                                  <Comandos até a parada>
                                                         }

Vamos criar, por exemplo, um programa que faz uma contagem regressiva:

-------------------------------------------\\-----------------------------------------------

package helloworld;

public class HelloWorld {

    public static void main(String[] args) {
        int i = 10;
        while (i>0){
            System.out.println(i);
            i--;
        }
    }
    
}
-------------------------------------------\\-----------------------------------------------
Código 1 - Contagem regressiva

Figura 2 - Programa para contagem regressiva.

O que ocorre no programa? Criamos uma variável "i" que começa valendo 10. Então, enquanto "i" for maior que 0, imprimiremos seu valor na saída e então decrementamos i em uma unidade:
"i--;" é equivalente a "i-=1;" que é equivalente a "i = i - 1;"

---//---

[Interface Gráfica]

E agora vamos iniciar a parte da interface gráfica de Java. Primeiramente, devemos criar uma janela para a aplicação, para depois implementar seus elementos (textos, botões, abas, etc). Para isso, tomemos o seguinte código como base:

-------------------------------------------\\-----------------------------------------------
package helloworld;
import java.awt.*;        //Uso de bibliotecas para criação da Janela e seus utilitários
import java.awt.event.*;
import javax.swing.*;

public class HelloWorld extends JFrame {
    private static HelloWorld frame;     // Declaração do objeto frame, janela que é exibida.
   

     // Assim que o objeto for criado, essa função será chamada. Ela é chamada "Construtora",
     // Uma espécie de inicialização das funções da janela.
    public HelloWorld(){ 
        inicializar();
    }
    
    public void inicializar(){
        setTitle("Usando Botão");   // Define o título da janela.
        // Essa função define a posição (x,y) em que a janela aparece e suas dimensões.
        setBounds(0,0,250,200);  
        setLayout(null);
    }
    
    // Todo programa começa a partir da função "main". Ou seja, sua execução começa aqui.
    public static void main(String[] args) {
        frame = new HelloWorld();         // Cria o objeto frame declarado no início.
        // Ao criar o objeto, chama a função construtora HelloWorld()
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);   // Define a operação de saída.
        frame.setVisible(true);     // Define a visibilidade da janela como verdadeiro.
    }
    
}
-------------------------------------------\\-----------------------------------------------
Código 2 - Criação de Janela.

Figura 3 - Programa que cria uma Janela.

Observe que as indicações na cor cinza após a dupla barra "//" representam comentários explicativos no código, facilitando o entendimento do leitor do que está acontecendo. Esses comentários não alteram o funcionamento do código.

Vamos agora adicionar algumas funcionalidades à nossa janela:
private JLabel texto; //Adiciona um texto à janela;
private JButton botao; //Adiciona um botão;
private JTextField digite //Adiciona espaço para digitar;

Para criar a instância (algum desses objetos) são necessários alguns procedimentos:
1) Declarar a variável no topo do programa
2) Criar um novo objeto com o comando new [Classe]
3) Dimensionar e posicionar o objeto na janela com comando .setBounds(x, y, largura, altura);
4) Adicionar o objeto na janela com comando add();
5) Adicionar a funcionalidade dele, passo mais detalhado à frente.

Vamos adicionar alguns destes elementos à tela:


-------------------------------------------\\-----------------------------------------------
package helloworld;
import java.awt.*;       
import java.awt.event.*;
import javax.swing.*;

public class HelloWorld extends JFrame {
    private static HelloWorld frame;
    private JLabel texto;             // Passo #1
    private JTextField digite;
    private JButton botao; 
   
    public HelloWorld(){ 
        inicializar();
        eventos();
    }
    
    private void inicializar(){
        setTitle("Usando Botão"); 
        setBounds(0,0,250,200);  
        setLayout(null);
        
        texto = new JLabel("Hello World");   // Passo #2
        botao = new JButton("Clique");
        digite = new JTextField(5);
        
        texto.setBounds(50,50,100,200);   // Passo #3
        botao.setBounds(25,25,200,50);
        digite.setBounds(50,100,150,20);
        
        add(texto);   // Passo #4
        add(botao);
        add(digite);
    }
    
    private void eventos(){
           // Passo #5
    }

    public static void main(String[] args) {
        frame = new HelloWorld(); 
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
    
}
-------------------------------------------\\-----------------------------------------------
Código 3 - Adicionando novos elementos à janela.

O resultado obtido deve ter a seguinte forma:

Figura 4 - Janela com interface gráfica e sem funcionalidades.

Entretanto, ainda não é possível interagir com a interface gráfica porque ainda não implementamos a parte #5 dos objetos do nosso frame (da nossa janela). Deixaremos esse assunto para a próxima lição, em que será estudado um pouco sobre métodos e as funcionalidades da interface gráfica.

Recomendo que você explore as funcionalidades dos Laços de Repetição e também procure alguns tipos de objetos de interface gráfica existentes. Dessa forma, entenderá o quão simples e poderosa a linguagem Java pode ser neste quesito. Uma nova ferramenta para o projeto de softwares.

Bom, por hoje é isso, espero que tenham apreciado os posts.

Nenhum comentário:

Postar um comentário