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


Aula 05: Parte C – Objetos para fazer escolhas

 

5.3. Componentes de seleção

 

CHECKBOX

Checkbox é um componente do tipo caixas de seleção, o qual permite selecionar itens em uma interface gráfica. As caixas de seleção podem ser independentemente selecionadas ou organizadas em grupos de caixas de seleção, das quais apenas uma pode estar selecionada. Uma caixa de seleção oferece um mecanismo em que uma opção pode assumir um de dois valores, selecionada ou não.

 

É uma caixa pequena com um label ao lado. O usuário pode clicar on ou off. Isto é útil quando você tem uma variedade de atributos que podem ser ligados ou não.

 

Construtores:

Checkbox( ) → cria uma checkbox branca com opção false.

Checkbox(String lbl) → cria uma checkbox com label lbl com opção false.

 

Métodos específicos:

String getLabel( ) → retorna o label da checkbox.

String setLabel(String lbl) → ajusta o label da checkbox para lbl.

boolean getState( ) → retorna o estado da checkbox.

void setState(boolean est) → ajusta o estado da checkbox para est.

 

Ação:

Cria um evento quando o estado muda.

 

Exemplo:

Checkbox aBox = new Checkbox(“SHOW”);

 

Exemplo completo - Checkbox:

import java.applet.Applet;

import java.awt.*;

import java.awt.event.*;

 

/*

<APPLET

CODE=caixinhas.class

WIDTH=200

HEIGHT=200 >

</APPLET>

*/

 

public class caixinhas extends Applet implements ItemListener

{

            Checkbox checkbox1, checkbox2, checkbox3, checkbox4;

            TextField text1;

 

            public void init( )

            {

                        checkbox1 = new Checkbox("1"); add(checkbox1);

                        checkbox1.addItemListener(this);

                        checkbox2 = new Checkbox("2"); add(checkbox2);

                        checkbox2.addItemListener(this);

                        checkbox3 = new Checkbox("3"); add(checkbox3);

                        checkbox3.addItemListener(this);

                        checkbox4 = new Checkbox("4"); add(checkbox4);

                        checkbox4.addItemListener(this);

                        text1 =  new TextField(30);add(text1);

            }

 

            public void itemStateChanged(ItemEvent e)

            {

                        if(e.getItemSelectable( ) == checkbox1)

                        {

            text1.setText("Caixinha de ativação 1 clicada!");

                        }

                        else if(e.getItemSelectable( ) == checkbox2)

                        {

                        text1.setText("Caixinha de ativação 2 clicada!");

                        }

                        else if(e.getItemSelectable( ) == checkbox3)

                        {

                        text1.setText("Caixinha de ativação 3 clicada!");

                        }

                        else if(e.getItemSelectable( ) == checkbox4)

                        {

                                   text1.setText("Caixinha de ativação 4 clicada!");

                        }

            }

}

 

  

CHECKBOXGROUP

Mais de uma Checkbox pode ser agrupada com um CheckboxGroup. Trata-se de grupos de caixas de seleção, das quais apenas uma pode estar selecionada em um dado instante, constituindo, assim, opções exclusivas entre si. Um CheckboxGroup não é um componente gráfico, mas sim um agrupamento lógico entre os componentes gráficos do tipo Checkbox.

 

Construtor:

Checkbox(String lbl, CheckboxGroup group, boolean state) → cria uma checkbox com a opção lbl em true contida no grupo CheckGroup.

 

Métodos específicos:

CheckboxGroup getCheckboxGroup( )→ retorna o grupo que a checkbox pertence.

void setCheckboxGroup(CheckboxGroup g) → ajusta nova CheckboxGroup(grupo) que pertence a checkbox.

Checkbox getSelectedCheckbox( ) → obtém a caixinha de ativação que atualmente está selecionada dentro do grupo

void setSelectedCheckbox (Checkbox) → estabelece a caixinha de ativação atualmente selecionada neste grupo.

 

Exemplo completo - CheckboxGroup:

//Programa umdogrupo

import java.applet.Applet;

import java.awt.*;

import java.awt.event.*;

 

/*

<APPLET CODE=umdogrupo.class WIDTH=250 HEIGHT=200>

</APPLET>

*/

 

public class umdogrupo extends Applet implements ItemListener

{

 CheckboxGroup grupo1;

 Checkbox alternativa1, alternativa2, alternativa3, alternativa4;

 Label rotulo1;

 TextField texto1;

 public void init()

 {

  rotulo1 = new Label("Escolha uma das alternativas seguintes: "); add(rotulo1);

  grupo1 = new CheckboxGroup();

  alternativa1 = new Checkbox("1", false, grupo1); add(alternativa1); alternativa1.addItemListener(this);

  alternativa2 = new Checkbox("2", false, grupo1); add(alternativa2); alternativa2.addItemListener(this);

  alternativa3 = new Checkbox("3", false, grupo1); add(alternativa3); alternativa3.addItemListener(this);

  alternativa4 = new Checkbox("4", false, grupo1); add(alternativa4); alternativa4.addItemListener(this);

  texto1 = new TextField(25);  add(texto1);

}

 public void itemStateChanged(ItemEvent e)

 {

   texto1.setText("A alternativa " + ((Checkbox) e.getItemSelectable()).getLabel() + " foi eleita!");

 }

}

 

 

LIST

List é uma lista na qual vários itens são apresentados simultaneamente em uma janela. Na construção desse tipo de componente, um programador pode estabelecer se a seleção será exclusiva ou múltipla. Um componente do tipo lista oferece a funcionalidade de apresentar uma lista de opções, na qual um item ou vários pode ser selecionado.

 

Construtores:

List( ) → cria uma lista nova sem linhas visíveis, desabilitando múltiplas seleções.

 

List(int nlin, boolean scr) → cria uma lista nova com um número visível de linhas nlin e com múltiplas seleções se scr for True.

 

Métodos:

void addItem(String item) → adiciona um item no final da lista.

 

void addItem(String item, int pos) → adiciona um item na posição pos.

void clear( ) → limpa a lista.

int countItems( ) → retorna o número de itens da lista.

void delItem(int num) → deleta item na posição num.

String getItem(int num) → retorna o nome do item na posição num.

void replaceItem(String new_item, int num) → ajusta o item na posição num para new_item.

 

Exemplos:

List alist = new List( );

alist.addItem(“Primeiro”);

alist.addItem(“Segundo”);

 

Exemplo completo -  lista:

import java.applet.Applet;

import java.awt.*;

import java.awt.event.*;

 

/*

<APPLET

CODE=lista.class

WIDTH=200

HEIGHT=200 >

</APPLET>

*/

 

public class lista extends Applet implements ActionListener

{

            List lista;

            TextField textf;

 

            public void init( )

            {

                        textf = new TextField(20); add(textf);

 

                        lista = new List(4);

                        lista.add ("Elemento 1");

                        lista.add ("Elemento 2");

                        lista.add ("Elemento 3");

                        lista.add ("Elemento 4");

                        lista.add ("Elemento 5");

                        lista.add ("Elemento 6");

                        lista.add ("Elemento 7");

                        lista.add ("Elemento 8");

                        lista.add ("Elemento 9");

                        add(lista); lista.addActionListener(this);

            }

            public void actionPerformed(ActionEvent e)

            {

                        if(e.getSource( ) == lista)

                        {

                        textf.setText(((List) e.getSource( )).getSelectedItem( ));

                        }

            }

}

 

 

CHOICE

Choice é um menu de escolha onde uma lista rolante de cadeia de caracteres possibilita escolher uma das opções.

Ele deixa visível uma única opção (a selecionada) ao usuário, mas permite que este visualize e selecione as outras opções mediante a ativação de um mini-botão associado ao componente.

Por default, o primeiro item adicionado a um menu choice é o item default.

 

Construtores:

public Choice( ) → cria menu de escolha, inicialmente vazio.

 

Métodos:

void addItem(String item); → adiciona item ao menu de escolha.

int countItems( ); → retorna o número de itens do menu.

String getItem(int num); → retorna nome do item na posição num.

int getSelectedIndex( ); → retorna índice do item selecionado.

String getSelectedItem( ); → retorna o nome do item selecionado.

void select(int num); → ajusta o item selecionado para num.

void select(String str); → ajusta o item selecionado para str.

 

Exemplo completo - choice:

import java.applet.Applet;

import java.awt.*;

import java.awt.event.*;

 

/*

<APPLET

CODE=choice.class

WIDTH=300

HEIGHT=200 >

</APPLET>

*/

 

public class choice extends Applet implements ItemListener

{

            TextField textf;

            Choice choice;

 

            public void init( )

            {

                        textf = new TextField(20); add(textf);

                        choice = new Choice( );

                        choice.add("Elemento 1");

                        choice.add("Elemento 2");

                        choice.add("Elemento 3");

                        choice.add("Elemento 4");

                        choice.add("Elemento 5");

                        choice.add("Elemento 6");

                        choice.add("Elemento 7");

                        choice.add("Elemento 8");

                        choice.add("Elemento 9");

                        choice.add("Elemento 10");

                        choice.add("Elemento 11");

                        choice.add("Elemento 12");

                        add(choice);

                        choice.addItemListener(this);

            }

            public void itemStateChanged(ItemEvent e)

            {

                        if(e.getItemSelectable( ) == choice)

                        {

                                   textf.setText("Você escolheu: " + ((Choice)e.getItemSelectable( )).getSelectedItem( ));

                        }

            }

}

 

 

Se você costuma navegar pela internet, já deve ter encontrado em muitas páginas esse tipo de recurso. Os Applets de java são muito usados em sites de pesquisas, compras, etc. em que você precisa dizer qual a sua escolha, qual a opção correta... Que tal agora trabalharmos um pouco com este recurso? Vamos fazer um programa com lista de compras! Os Applets abaixo são exemplos de como poderíamos exercitar nosso conhecimento de listas e menus de opções.

 

Exemplo - compras:

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

import java.util.*;

 

public class compras extends Applet implements ItemListener

{

    Label l1=new Label();

    Label l2=new Label();

    Panel p1,p2,p3,p4;

    Choice ch=new Choice();

    TextArea ta=new TextArea("",10,25,TextArea.SCROLLBARS_NONE);

    TextField tf= new TextField("     ",10);

    double total,preco;

    public void init()

    {

        setLayout(new BorderLayout());

        p1=new Panel(); add("North",p1);

        p1.setBackground(Color.red);

        p1.add(l1);l1.setBackground(Color.red);

        l1.setText("Higiêne Pessoal");

        p2=new Panel(); add("Center",p2);

        p2.setBackground(Color.blue);

        ch.add("papel higiênico");

        ch.add("sabonete");

        ch.add("shampoo");

        ch.add("condicionador");

        ch.add("creme para barbear");

        p2.add(ch);

        ch.addItemListener(this);

       p3=new Panel(); add("East",p3);

       p3.setBackground(Color.blue);

       p3.add(ta);ta.setEditable(false);

       ta.setBackground(Color.white);

       p4=new Panel(); add("South",p4);

       p4.setBackground(Color.green);

       p4.add(l2); l2.setBackground(Color.green);

       l2.setText("Total");

       p4.add(tf);

       tf.setBackground(Color.white);

       double total=0;

       double preco=0;

    }

      public void itemStateChanged(ItemEvent e)

      {

         double papel=0.50;

         double sabon=0.30;

         double shamp=1.50;

         double condic=2.00;

         double creme=4.00;

          if(e.getItem()=="papel higiênico")

      {

         preco=papel;

         ta.append(e.getItem().toString()+"="+preco+"\n");

      }

         if(e.getItem()=="shampoo")

     {

        preco=shamp;

        ta.append(e.getItem().toString()+"="+preco+"\n");

     }

        if(e.getItem()=="sabonete")

    {

       preco=sabon;

       ta.append(e.getItem().toString()+"="+preco+"\n");

    }

       if(e.getItem()=="condicionador")

    {

      preco=condic;

      ta.append(e.getItem().toString()+"="+preco+"\n");

    }

      if(e.getItem()=="creme para barbear")

   {

      preco=creme;

      ta.append(e.getItem().toString()+"="+preco+"\n");

   }

        total=total+preco;

        tf.setText(String.valueOf(total));

   }

}//fim do Applet

 

 

Exemplo – compras2:

import java.awt.*;

import java.applet.*;

import java.awt.event.*;

import java.util.*;

 

public class compras2 extends Applet implements ItemListener

{

    Label l1=new Label();

    Label l2=new Label();

    Panel p1,p2,p3,p4;

    Choice ch=new Choice();

    Choice qtd=new Choice();

    TextArea ta=new TextArea("",10,35,TextArea.SCROLLBARS_NONE);

    TextField tf= new TextField("     ",10);

    double total,preco;

    public void init()

    {

        setLayout(new BorderLayout());

        p1=new Panel(); add("North",p1);

        p1.setBackground(Color.yellow);

        p1.add(l1);l1.setBackground(Color.yellow);

        l1.setText("Higiêne Pessoal");

        p2=new Panel(); add("Center",p2);

        p2.setBackground(Color.magenta);

 

        qtd.add("1");

        qtd.add("2");

        qtd.add("3");

        qtd.add("4");

        qtd.add("5");

        p2.add(qtd);

 

        ch.add("papel higiênico");

        ch.add("sabonete");

        ch.add("shampoo");

        ch.add("condicionador");

        ch.add("creme para barbear");

        p2.add(ch);

        ch.addItemListener(this);

 

       p3=new Panel(); add("East",p3);

       p3.setBackground(Color.magenta);

       p3.add(ta);ta.setEditable(false);

       ta.setBackground(Color.orange);

       p4=new Panel(); add("South",p4);

       p4.setBackground(Color.cyan);

       p4.add(l2); l2.setBackground(Color.cyan);

       l2.setText("Total");

       p4.add(tf);

       tf.setBackground(Color.white);

       double total=0;

       double preco=0;

    }

      public void itemStateChanged(ItemEvent e)

      {

         double papel=0.50;

         double sabon=0.30;

         double shamp=1.50;

         double condic=2.00;

         double creme=4.00;

 

         String quantidade = qtd.getSelectedItem().toString();

         String item = e.getItem().toString();

         double quant = Double.valueOf(quantidade).doubleValue();

 

          if(e.getItem()=="papel higiênico")

      {

         preco=papel;

      }

         if(e.getItem()=="shampoo")

     {

        preco=shamp;

     }

        if(e.getItem()=="sabonete")

    {

       preco=sabon;

    }

       if(e.getItem()=="condicionador")

    {

      preco=condic;

    }

      if(e.getItem()=="creme para barbear")

   {

      preco=creme;

   }

        ta.append(quantidade+"x "+item+" = "+quantidade+"x"+preco+" = "+(quant*preco)+"\n");

        total=total+(quant*preco);

        tf.setText(String.valueOf(total));

   }

}//fim do Applet

 

  

Até a Próxima! 


Volta para a pagina principal

 

Última atualização:  06/abril/2009