Caixas de seleção

Uma caixa de seleção oferece um mecanismo de seleção em que uma opção pode assumir um de dois valores, selecionada ou não-selecionada. Diz-se que tais componentes têm comportamento booleano.

Em AWT, essa funcionalidade é suportada pela classe Checkbox. Além do construtor padrão, essa classe oferece construtores que permitem expressar um rótulo (String) para o botão e o estado inicial (boolean). O método getState() permite obter o estado da seleção; o método getLabel(), o rótulo associado à caixa de seleção.

Checkbox implementa a interface ItemSelectable, permitindo tratar reações a eventos do tipo item através de um ItemListener.

Esse exemplo ilustra a manipulação de três componentes Checkbox independentes. Nesse caso, na tela inicial nenhum box está selecionado:

Estado inicial dos Checkboxes

Após a seleção do primeiro e do segundo itens, a tela apresenta:

Checkboxes selecionados

e as seguintes mensagens são enviadas para o console pelo manipulador de eventos:

[Selecionou Primeira]:   true   false   false
[Selecionou Segunda]:    true   true    false
    

Se na seqüência o primeiro box for novamente "clicado" para ser desselecionado, a mensagem enviada para o console será:

[Selecionou Primeira]:   false  true    false
    

Em Swing, essa funcionalidade é suportada de forma similar pela classe JCheckBox.

É também possível definir grupos de caixas de seleção das quais apenas uma pode estar selecionada em um dado instante, constituindo assim opções exclusivas entre si. Em AWT, esse tipo de funcionalidade é oferecido através do conceito de um grupo de checkboxes, suportado através da classe CheckboxGroup. Um CheckboxGroup não é um componente gráfico, como um container, mas sim um agrupamento lógico entre os componentes gráficos do tipo Checkbox, que devem especificar na sua construção ou através do método setCheckboxGroup() a qual grupo pertencem, se for de pertencer a algum.

Nesse exemplo é mostrado como três componentes Checkbox são agrupados através de CheckboxGroup. O formato das caixas (em losango) dá uma indicação visual de que as opções são exclusivas:

Janela com Checkboxes agrupadas

Se na seqüência as opções Segunda, Terceira e novamente a Primeira forem selecionadas, o manipulador de eventos envia as seguintes mensagens para o console:

[Selecionou Segunda]:    false  true    false
[Selecionou Terceira]:   false  false   true
[Selecionou Primeira]:   true   false   false
    

Funcionalidade similar a essa é oferecida em Swing através das classes JRadioButton e ButtonGroup.


© Ivan Luiz Marques Ricarte
DCA/FEEC/UNICAMP

Last modified: Mon Aug 14 09:56:02 EST 2000