Adicionando Caixas de Verificação no seu Programa Java Priscila Gomes Neste tutorial iremos falar sobre os aspectos básicos de uma caixa de verificação: quais os tipos, quando e como utiliza-las, como fazer verificação de eventos, entre outros. Introdução À medida que seus programas crescerem em complexidade, você sentirá necessidade de fornecer uma série de opções a serem selecionadas pelo usuário do sistema. Estas escolhas podem ser múltiplas (como por exemplo, uma seleção 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 verificação. Caixas de Verificação Para criar uma caixa de verificação, utilize o construtor da classe Checkbox, como segue: Checkbox checkbox = new Checkbox(str, group, check); O construtor Checkbox usa três argumentos (rótulo da caixa de verificação, referência ao grupo da caixa e um valor booleano. Neste caso, str é uma String para o rótulo da caixa, group é uma referência ao nome de um objeto CheckboxGroup (usada apenas para caixas de verificação exclusivas), e um valor boolean, que indica se a caixa de verificação encontra-se(true) ou não(false) selecionada. Após ter criado a caixa de verificação, adicione-a a applet chamando o método add(), como segue: add(checbox); OBS: Construtor é quando definimos um método que possui o mesmo nome de uma classe. Em condições normais, toda classe deve ter um construtor. Criando Caixas de Verificação Não-Exclusivas (Múltiplas) Suponha que você esteja criando uma applet que requeira que o usuário faça escolhas numa lista de atividades físicas. O usuário poderá escolher uma opção, mais de uma opção, ou nenhuma opção. Nesse caso, será necessário configurar as caixas de verificação em modo não-exclusivo. Para esse exemplo, crie as caixas de verificação e acrescente-as a applet (veja o código 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 verificação (como a apresentada na figura a seguir). Para selecionar uma ou mais opções, basta que você clique com o mouse sobre elas.
As caixas de verificação não-exclusiva permitem que você selecione quantas opções quiser. Criando caixas de Verificação Exclusivas Suponha que você precisa de um programa em que o usuário selecione a opção de sexo masculino ou feminino. O usuário deverá selecionar apenas uma opção, portanto, devemos associar as caixas de verificação da lista a um objeto CheckboxGroup para poder criar uma lista de caixas de verificação exclusivas. Primeiramente, crie o CheckboxGroup, como segue: CheckboxGroup group = new CheckboxGroup(); O Construtor CheckboxGroup não requer nenhum argumento. Crie as caixas de verificação fornecendo uma referência 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 verificação devem ser colocadas no mesmo grupo, podendo ser selecionada apenas uma opção por vez. Adicione as caixas de verificação à tela usando o método add (); Ao rodar a applet, ela se apresentará conforme a figura a baixo: A primeira opção está selecionada, mas se o usuário desejar marcar outra opção, a primeira opção não mais será assinalada, e sim a que o usuário escolheu.
Manipulando caixas de Verificação Uma maneira fácil de manipular as caixas de verificação, é utilizando seus próprios métodos. Suponha que você construiu um jogo de perguntas e respostas. O usuário deverá selecionar a opção que achar correta, e você deverá informar a ele se a resposta foi correta ou não. Para isso, você precisa saber qual caixa de verificação foi selecionada. Como fazer isso? Veja o código 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 apresentação gráfica das caixas setlayout(null); //crie os objetos caixa de verificação 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 método setbounds() para declarar a posição 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 não (método getstate();), se estiver, siga as instruções 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 código a cima, getstate() é um método que obtem o State(estado)da caixa de verificação, ou seja, permite que você saiba se ela foi ou não selecionada. Ao compilar o código, sua applet deverá estar como no exemplo a baixo:
Após o usuário selecionar a opção, é exibido um texto dizendo se a alternativa correta foi ou não selecionada. Na tabela a baixo, você poderá encontrar os métodos públicos da classe Checkbox: Métodos boolean getstate( ) verificação CheckboxGroup getcheckboxgroup( ) String getlabel( ) verificação 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 verificação geram eventos quando recebem um clique. Para responder a um evento gerado por uma caixa de verificação, utilize o identificador target da classe event. (Utilize os métodos que forem necessários para identificar e responder o evento). Para entender melhor, analise o código 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 método action() public boolean action(event evento, Object arg){ //se checkbox1 gerar um evento if(evento.target == checkbox1){ //deixe o seu rótulo 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 rótulo azul e os outros preto checkbox3.setforeground(color.blue); checkbox2.setforeground(color.black); checkbox1.setforeground(color.black); return false; Após compilar o código a cima, você terá a seguinte applet: Ao clicar sobre uma das opções de cores, o rótulo deve ficar com a cor correspondente a opção desejada. Conclusão Espero que este tutorial tenha te ensinado o básico sobre a manipulação de caixas de verificação. Caso tenha alguma dúvida, não exite em postá-las no fórum. Um abraço,
Até a próxima.