TA345/531 TP257 Informática Aplicada à Engenharia de Alimentos.


Aula 05: Parte B – Objetos úteis para programar

 

A criação de uma interface gráfica com usuários utiliza, tipicamente, uma série de componentes preestabelecidos para tal fim, tais como rótulos e botões, um componente que pode ser ativado pelo usuário através do mouse.

 

Java oferece um amplo conjunto de classes predefinidas que simplificam o desenvolvimento de aplicações gráficas. A raiz desse conjunto de classes gráficas no pacote java.awt é a classe abstrata Component, que representa qualquer objeto que pode ser apresentado na tela e ter interação com usuários.

 

Antes de começarmos, é bom sabermos que:

1.  Todos os componentes podem ter uma posição e tamanho.

2.  Todos os componentes podem ter uma cor e uma cor de fundo.

3.  Componentes podem ser habilitados ou desabilitados.

 

Componentes AWT podem ser divididos em três partes:

 

Componentes da interface: Componentes da interface abrangem todos os widgets e controles associados a uma interface gráfica. Exemplos destes componentes são: buttons, text labels, scrollbars, pick list e campos textentry.

Containers: Containers abrangem áreas nas quais os componentes da interface podem ser postos. Isto habilita os componentes a serem agrupados e formarem um objeto mais coeso e fácil de ser manipulado. Um Panel é um exemplo deste tipo de componente.

Windows: Windows são um tipo muito especial da classe Component. Todos os outros componentes são adicionados dentro de uma window. Normalmente quando se programa Applets, windows não são usadas.

 

5.2. Componentes da interface

 

RÓTULOS (LABEL)

Um label é simplesmente um campo texto incluído em uma janela gráfica com o único objetivo de apresentação. Dessa forma, não reagem a interações com usuários.

 

Construtores:

Label( ) → cria um label vazio.

Label(String lbl, int alin) → cria um label com texto lbl e alinhamento especificado alin, podendo ser:

Label.LEFT → alinhamento à esquerda.

Label.CENTER → centraliza texto.

Label.RIGHT → alinhamento à direita.

 

Métodos específicos:

Int getAlignment( ) → retorna o alinhamento do label.

void setAlignment(int alinha) → ajusta o alinhamento do label para a linha.

String getText( ) → retorna o texto do label.       

void setText(String lbl) → ajusta o texto do label para lbl.

 

Ação:

Nenhuma, por default.

 

Exemplo:

Label aLabel = new Label(“Hello!”);

 

Exemplo completo – Label:

import java.awt.*;       

import java.applet.*;   

 

/*applet code="oimundo.class"widt=300 height=100></applet>*/   

 

public class oimundo extends Applet  

{

            Label oiLabel= new Label ("Oi mundo!");

            public void init()        {

                        setBackground(Color.yellow); 

                        add(oiLabel);                

            }                                

}

 

 

CAMPOS DE TEXTO (TEXTFIELD)

TextField é uma área retangular, de tamanho correspondente a uma linha, que pode ser utilizada para apresentar ou adquirir strings do usuário.

 

Os construtores dessa classe permitem a criação de um campo de texto que pode estar vazio ou conter algum texto inicial. O número de colunas no campo também pode ser especificado pelos construtores.

 

TextField habilita o usuário a entrar com uma linha de texto. Isto é o suficiente para quase todas as entradas de dados. Mesmo o nome sendo TextField, números são aceitos também. Pode ser usado na construção de formulários.

 

Construtores:

public TextField( ) → cria um campo de texto.

public TextField(int tam) → cria um campo de texto com tamanho tam.

public TextField(String txt) → cria um campo de texto ajustado com a string txt.

public TextField(String txt, int tam) → cria um campo de texto com a string txt e tamanho tam.

 

Métodos:

int getColumns( ) → retorna o número de colunas (tamanho) do TextField.

String getText( ) → retorna o texto contido no TextField.

void setText(String txt) → ajusta o texto da TextField para txt.

 

Exemplo:

TextField atexto = new TextField(“35”,5);

 

Exemplo completo - TextField:

//Programa Exemplo de TextField

 import java.applet.Applet;

 import java.applet.*;

 import java.awt.*;

 import java.awt.event.*;

 

 public class textf extends Applet implements ActionListener

 {

     Label titulo,rotulo1, rotulo2, rotulo3;

     TextField caixa1, caixa2, caixa3;

     Button limpa;

     public void init()

     {

         titulo = new Label("Faça seu cadastro: ");  add(titulo);

         rotulo1 = new Label("Nome:");                add(rotulo1);

         caixa1 = new TextField("",30);                 add(caixa1);

         rotulo2 = new Label("RA:");                    add(rotulo2);

         caixa2 = new TextField("",10);                add(caixa2);

         rotulo3 = new Label("Nascimento:");      add(rotulo3);

         caixa3 = new TextField("",10);                add(caixa3);

         limpa = new Button("Limpa");                 add(limpa);

         limpa.addActionListener(this);

    }

     public void actionPerformed(ActionEvent e)

     {

         if (e.getSource() == limpa)

         {

            caixa1.setText("        ");

            caixa2.setText("        ");

            caixa3.setText("        ");

         }

     }

 }

 

 

ÁREAS DE TEXTO (TEXTAREA)

TextArea é um componente parecido com TextField, a diferença é que TextArea pode ter várias linhas de texto.

É um componente simples de edição de texto.

Os componentes TextArea são muito úteis para apresentar resultados, montar tabelas.

 

Construtores:

TextArea( ) → cria um campo de texto.

TextArea(int lin, int col) → cria um campo de texto com lin linhas e col colunas.

TextArea(String txt, int lin, int col) → cria um campo de texto com o conteúdo txt, lin linhas e col colunas.

 

Métodos:

int getColumns( ) → retorna o número de colunas do TextField.

int getRows( ) → retorna o número de linhas do TextField.

String getText( ) → retorna o texto contido no TextField.

void setText(String txt) → ajusta o conteúdo do TextField para a string txt.

 

Exemplo completo -  TextArea:

//Exemplo de uso de TextArea
import java.awt.*;
import java.applet.Applet;
/*<APPLET code=textarea.class height=300 width=260></APPLET>*/
public class textarea extends Applet
{
     TextArea ta;
     int i;
     double f,k;
     public void init()
     {
          //ta.setEditable(false);//bloqueia a área de texto para alterações do usuário
          ta = new TextArea("",16,30);
          add(ta);
          i=1;
          //transformação de ºC p/ ºF apresntando o resultado em ta3
          ta.append("Tabela de conversão \nde Temperaturas\n");
          ta.append("==================\n");
          ta.append("ºC         ºF            K\n  ");
          ta.setBackground(Color.blue);
          ta.setForeground(Color.yellow);
          for (i=0;i<=90;i++)
          {
               f = 1.8*i+32;
               k = i+273.15;
               ta.append(i+"       "+f+"       "+k+"\n");
               i=i+9;
          }
          ta.append("==================\n");
     }
}
 

 

BOTÕES (BUTTON)

Um botão corresponde a um componente gráfico que pode ser “pressionado” com um “clique” do mouse, podendo, assim, responder à ativação por parte de um usuário.

 

Pode ser customizado para ter um texto ou ainda ser branco.

 

Construtores:

Button( ) → cria um botão sem label.

Button(String etiq) → cria um Button com label igual ao conteúdo de etiq.

 

Métodos específicos:

String getLabel( ) → retorna o label(etiqueta) do botão.

void setLabel(String etiq) → ajusta label do botão para o conteúdo de etiq.

 

Ação:

Cria um evento quando pressionado.

 

Exemplo:

Button botão = new Button(“OK”);

 

Exemplo completo -  botão: 

//Programa Botão

 import java.applet.Applet;

 import java.applet.*;

 import java.awt.*;

 import java.awt.event.*;

 

 public class clique extends Applet implements ActionListener

 {

     Label titulo;

     TextField caixa1;

     Button botao;

     public void init()

     {

         titulo = new Label("Botão Exemplo");

         titulo.setForeground (Color.red);         add(titulo);

         botao = new Button("Clique em mim");         add(botao);

         botao.addActionListener(this);

         caixa1= new TextField ("          ",16);         add (caixa1);

     }

     public void actionPerformed(ActionEvent e)

     {

         if (e.getSource() == botao)

         {

         caixa1.setText("Muito Obrigado!");

         }

     }

 } 

 

 

BARRA DESLIZANTE (SCROLLBAR)

É geralmente usada quando o usuário precisa se locomover rapidamente numa grande área.

Pode ser orientada verticalmente ou horizontalmente.

 

Construtores:

Scrollbar( ) → cria scrollbar orientada verticalmente.

Scrollbar(int ori) → cria scrollbar orientada por ori, sendo que ori pode ser:

Scrollbar. HORIZONTAL

Scrollbar.VERTICAL

Scrollbar (int ori, int val, int vis, int min, int max) → cria uma scrollbar com orientação ori, item default val, tamanho da página vis, mínimo min e máximo max.

 

Métodos:

int getOrientation( ) → retorna a orientação da scrollbar.

void setValue(int val) → ajusta o valor da scrollbar para item na posição val.

int getMinimum( ) → retorna o valor mínimo de itens da scrollbar.

int getMaximum( ) → retorna o valor máximo de itens da scrollbar.

 

Exemplo:

ScrollBar x = new scrollbar (scrollbar. HORIZONTAL);

 

Exemplo completo - Scrollbar:

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

 

public class AlteraCor extends Applet implements AdjustmentListener

{

  int       Vermelho,  Verde,  Azul;

  Label         lb1,        lb2,      lb3;

  TextField   tf1,         tf2,       tf3;

  Scrollbar   sb1,       sb2,     sb3;

  Color c;

 

  public void init()

  {

            resize(190,200);

 

            lb1 = new Label("Vermelho:",Label.RIGHT);add(lb1);

           sb1 = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,256);add(sb1);

           sb1.addAdjustmentListener(this);

           tf1 = new TextField(String.valueOf(sb1.getValue()),2);

           add(tf1);

 

           lb2 = new Label("Verde:",Label.RIGHT);add(lb2);

            sb2 = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,256);add(sb2);

            sb2.addAdjustmentListener(this);

            tf2 = new TextField(String.valueOf(sb2.getValue()),2);

            add(tf2);

 

           lb3 = new Label("Azul:",Label.RIGHT);add(lb3);

           sb3 = new Scrollbar(Scrollbar.HORIZONTAL,0,1,0,256);add(sb3);

           sb3.addAdjustmentListener(this);

            tf3 = new TextField(String.valueOf(sb3.getValue()),3);

            add(tf3);

  }

 

  public void adjustmentValueChanged(AdjustmentEvent e)

  {

    if((e.getAdjustable() == sb1)||(e.getAdjustable() == sb2)||(e.getAdjustable() == sb3))

    {

      Vermelho=(int)sb1.getValue();         tf1.setText(String.valueOf(Vermelho));

      Verde=(int)sb2.getValue();               tf2.setText(String.valueOf(Verde));

      Azul=(int)sb3.getValue();                  tf3.setText(String.valueOf(Azul));

 

      c= new Color(Vermelho, Verde, Azul);

 

      repaint();

    }

  }

 

  public void paint(Graphics tela)

  {

              tela.setColor(c);

              tela.fillRect(40,100,120,80);

  }

}

 

 

CANVAS

Canvas é um componente completamente genérico. Ele existe como fundação para outras subclasses. Este componente não é muito útil para usuários iniciantes ou intermediários, mas é extremamente útil para criar seus próprios componentes.

 

Construtores:

Canvas( ) → cria um Canvas.

 

Métodos específicos:

void paint(Graphics g) → desenha um Canvas com a cor de fundo default.

 

Ação:

Nenhuma, por default.      

  

Exemplo:

Canvas x = new Canvas( );

 

Exemplo completo -  canvas: 

import java.applet.Applet;

import java.awt.*;

import java.awt.event.*;

 

/*

<APPLET

CODE=canvas.class

WIDTH=400

HEIGHT=200 >

</APPLET>

*/

 

public class canvas extends  java. applet. Applet implements MouseListener

{

            graphicsCanvas gc;

            Button buttonl;

            public void init( )

            {

                        setBackground (Color.green);

                        gc = new graphicsCanvas();

                        gc.setSize(100, 100); add(gc);

                        addMouseListener(this);

            }

 

            public void mousePressed(MouseEvent e){}

            public void mouseClicked(MouseEvent e)

            {

                        for (int loop_index = 0; loop_index < 150; loop_index++)

                        {

                                   gc.setLocation(loop_index, 0);

                        }

            }

            public void mouseReleased(MouseEvent e){}

            public void mouseEntered(MouseEvent e){}

            public void mouseExited(MouseEvent e){}

}

class graphicsCanvas extends java.awt.Canvas

{

            public void paint (Graphics g)

            {

                        g.drawOval(10, 50, 40, 40);

                        g.drawLine(10, 50, 50, 90);

                        g.drawLine(50, 50, 10, 90);

            }

}

 

 

CONTAINERS

Containers são simplesmente componentes que podem conter outros componentes. Pense como uma maneira de subdividir uma área para construir a interface com o usuário, onde os componentes podem ser colocados.

 

Existem dois tipos de containers: Panels e Windows.

 

A maior diferença entre eles é que um Panel é definido como uma área em uma janela já existente e Window é uma janela completamente nova. Quando a aplicação é um Appiet, o único container que pode ser aplicado é o Panel.

 

Exemplo - container:

import java.awt.*;

import java.applet.Applet;

public class ex5_6 extends Applet {

Frame aframe;

public void init( ) {

aframe = new Frame (“Exemplo de Frame”) ;

aframe.show( );

}

}

 

image022.jpg

 


Volta para a pagina principal

 

Última atualização:  27/março/2009