Você está na página 1de 6

Adicionando Caixas de Verificao no seu Programa Java

Priscila Gomes
Neste tutorial iremos falar sobre os aspectos bsicos de uma caixa de verificao: quais os tipos, quando e como utiliza-las, como fazer verificao de eventos, entre outros.

Introduo
medida que seus programas crescerem em complexidade, voc sentir necessidade de fornecer uma srie de opes a serem selecionadas pelo usurio do sistema. Estas escolhas podem ser mltiplas (como por exemplo, uma seleo de atributos para um texto: negrito, tamanho, fonte) ou exclusivas (no caso de escolha do sexo, por exemplo). Uma maneira de fornecer este tipo de escolha criar e exibir controles do tipo caixa de verificao.

Caixas de Verificao
Para criar uma caixa de verificao, utilize o construtor da classe Checkbox, como segue:

Checkbox checkbox = new Checkbox(str, group, check);


O construtor Checkbox usa trs argumentos (rtulo da caixa de verificao, referncia ao grupo da caixa e um valor booleano. Neste caso, str uma String para o rtulo da caixa, group uma referncia ao nome de um objeto CheckboxGroup (usada apenas para caixas de verificao exclusivas), e um valor boolean, que indica se a caixa de verificao encontra-se(true) ou no(false) selecionada. Aps ter criado a caixa de verificao, adicione-a a applet chamando o mtodo add(), como segue:

add(checbox);
OBS: Construtor quando definimos um mtodo que possui o mesmo nome de uma classe. Em condies normais, toda classe deve ter um construtor.

Criando Caixas de Verificao No-Exclusivas (Mltiplas)


Suponha que voc esteja criando uma applet que requeira que o usurio faa escolhas numa lista de atividades fsicas. O usurio poder escolher uma opo, mais de uma opo, ou nenhuma opo. Nesse caso, ser necessrio configurar as caixas de verificao em modo no-exclusivo. Para esse exemplo, crie as caixas de verificao e acrescente-as a applet (veja o cdigo a seguir):

Checkbox1 = new Checkbox(Andar de Bicicleta, null, false); checkbox2 = new Checkbox(Correr, null, false); checkbox3 = new Checkbox(Nadar, null, false); add(checkbox1); add(checkbox2); add(checkbox3);
Ao rodar a applet, voc ver uma lista de caixas de verificao (como a apresentada na figura a seguir). Para selecionar uma ou mais opes, basta que voc clique com o mouse sobre elas.

As caixas de verificao no-exclusiva permitem que voc selecione quantas opes quiser.

Criando caixas de Verificao Exclusivas


Suponha que voc precisa de um programa em que o usurio selecione a opo de sexo masculino ou feminino. O usurio dever selecionar apenas uma opo, portanto, devemos associar as caixas de verificao da lista a um objeto CheckboxGroup para poder criar uma lista de caixas de verificao exclusivas. Primeiramente, crie o CheckboxGroup , como segue:

CheckboxGroup group = new CheckboxGroup();


O Construtor CheckboxGroup no requer nenhum argumento. Crie as caixas de verificao fornecendo uma referncia ao objeto CheckboxGroup como sendo o segundo argumento do construtor, conforme o exemplo a baixo:

checkbox1 = new Checkbox (Sexo Masculino, group, true); checkbox2 = new Checkbox (Sexo Feminino, group, true);
Observe que o objeto CheckboxGroup, group, o segundo argumento do construtor da classe Checkbox. Esse argumento informa ao java que as caixas de verificao devem ser colocadas no mesmo grupo, podendo ser selecionada apenas uma opo por vez.

Adicione as caixas de verificao tela usando o mtodo add (); Ao rodar a applet, ela se apresentar conforme a figura a baixo:

A primeira opo est selecionada, mas se o usurio desejar marcar outra opo, a primeira opo no mais ser assinalada, e sim a que o usurio escolheu.

Manipulando caixas de Verificao


Uma maneira fcil de manipular as caixas de verificao, utilizando seus prprios mtodos. Suponha que voc construiu um jogo de perguntas e respostas. O usurio dever selecionar a opo que achar correta, e voc dever informar a ele se a resposta foi correta ou no. Para isso, voc precisa saber qual caixa de verificao foi selecionada. Como fazer isso? Veja o cdigo a seguir:

public class Jogar extends Applet { //declare os objetos do tipo Checkbox Checkbox checkbox1; Checkbox checkbox2; Checkbox checkbox3; public void init() { //declare o layout como null para poder controlar a apresentao grfica das caixas setLayout(null); //crie os objetos caixa de verificao e passe seus argumentos checkbox1 = new Checkbox(Afrodite,null,false); checkbox2 = new Checkbox(Artemis,null,false); checkbox3 = new Checkbox(Medusa,null,false); //adicione as caixas tela add(checkbox1); add(checkbox2); add(checkbox3); //use o mtodo setBounds() para declarar a posio e tamanho dos objetos na tela checkbox1.setBounds(newRectangle(10,20,140,40)); checkbox2.setBounds(newRectangle(10,50,100,40)); checkbox3.setBounds(newRectangle(10,80,100,40)); } public void paint(Graphics g){ g.drawString(Quem a Deusa do Amor?,10,7); //Verifique se a caixa est selecionada ou no (mtodo getState();), se estiver, siga as instrues boolean checked = checkbox1.getState(); if(checked) g.drawString(Parabens, resposta correta,10,120); checked = checkbox2.getState(); if(checked) g.drawString(Resposta Errada,10,120); boolean checked = checkbox3.getState(); if(checked) g.drawString(Resposta Errada,10,120); } public boolean action(Event evt, Object arg){ repaint(); return true; } } No cdigo a cima, getState() um mtodo que obtem o State(estado)da caixa de verificao, ou seja, permite que voc saiba se ela foi ou no selecionada.
Ao compilar o cdigo, sua applet dever estar como no exemplo a baixo:

Aps o usurio selecionar a opo, exibido um texto dizendo se a alternativa correta foi ou no selecionada. Na tabela a baixo, voc poder encontrar os mtodos pblicos da classe Checkbox:

Mtodos boolean getState( ) verificao CheckboxGroup getCheckboxGroup( ) String getLabel( ) verificao void setCheckboxGroup (CheckboxGroup g) void setState(boolean state) void setLabel(String label)

Funcionalidade retorna o estado da caixa de retorna o objeto grupo da caixa retorna o rotulo da caixa de configura o objeto grupo da caixa configure o estado da caixa configura o rotulo da caixa

Respondendo a um Evento
Na maioria das vezes, os controles do tipo caixa de verificao geram eventos quando recebem um clique. Para responder a um evento gerado por uma caixa de verificao, utilize o identificador target da classe event. (Utilize os mtodos que forem necessrios para identificar e responder o evento). Para entender melhor, analise o cdigo a seguir:

public class Janela extends Applet{ Checkbox checkbox1; Checkbox checkbox2; Checkbox checkbox3; public void init(){ checkbox1 = new Checkbox("Verde"); checkbox2 = new Checkbox("Vermelho"); checkbox3 = new Checkbox("Azul"); add(checkbox1); add(checkbox2); add(checkbox3); setLayout(null); checkbox1.setBounds(new Rectangle(10,20,140,40)); checkbox2.setBounds(new Rectangle(10,50,100,40)); checkbox3.setBounds(new Rectangle(10,80,100,40));

} //sobregrave o mtodo action() public boolean action(Event evento, Object arg){ //se checkbox1 gerar um evento if(evento.target == checkbox1){ //deixe o seu rtulo azul e os outros preto checkbox1.setForeground(Color.green); checkbox2.setForeground(Color.black); checkbox3.setForeground(Color.black); } //se checkbox2 gerar um evento if(evento.target == checkbox2){ //deixe o seu rotulo vermelho e os outros preto checkbox2.setForeground(Color.red); checkbox1.setForeground(Color.black); checkbox3.setForeground(Color.black); } //se checkbox3 gerar um evento if(evento.target == checkbox3){ //deixe o seu rtulo azul e os outros preto checkbox3.setForeground(Color.blue); checkbox2.setForeground(Color.black); checkbox1.setForeground(Color.black); } return false; } }
Aps compilar o cdigo a cima, voc ter a seguinte applet:

Ao clicar sobre uma das opes de cores, o rtulo deve ficar com a cor correspondente a opo desejada.

Concluso
Espero que este tutorial tenha te ensinado o bsico sobre a manipulao de caixas de verificao. Caso tenha alguma dvida, no exite em post-las no frum. Um abrao,

At a prxima.