Listas

Um componente do tipo lista oferece a funcionalidade de apresentar uma lista de opções dos quais um ou vários itens podem ser selecionados. Além disso, é possível exibir várias opções simultaneamente.

Em AWT, a classe List oferece essa funcionalidade. Além do construtor padrão, essa classe oferece um construtor que permite especificar quantas linhas da lista serão visíveis. Um terceiro construtor permite especificar um valor booleano indicando se o modo de seleção de vários itens está habilitado (true) ou não. Se não especificado, apenas um item pode ser selecionado da lista. Os principais métodos dessa classe incluem:

Além desses métodos, para a manipulação de seleções múltiplas há:

Assim como as classes Choice e Checkbox, a classe List implementa a interface ItemSelectable, que permite associar um objeto dessa classe a um manipulador de eventos do tipo item, ou seja, a um objeto ItemListener. Esse tipo de evento é gerado quando o item é alvo de um único toque do mouse.

Além disso, um item da lista pode reagir a um toque duplo do mouse através da geração de um evento do tipo ação, usando para o tratamento do evento nesse caso um manipulador do tipo ActionListener.

Esse exemplo ilustra como realizar a manipulação de um component List. Nesse caso, a múltipla seleção é habilitada e tanto eventos de item como de ação são tratados. A tela inicial apresenta:

Estado inicial da lista

Após a seleção (clique simples) sobre a primeira e terceira opções, o estado do componente fica:

Estado inicial da lista

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

    Itens selecionados: Primeira
    Itens selecionados: Primeira Terceira
    

Se na seqüência houver um clique duplo sobre a segunda opção e então um clique simples sobre a primeira e a terceira opções (para remover essas seleções), as seguintes mensagens serão enviadas ao console pelos manipuladores de eventos:

    Itens selecionados: Primeira Segunda Terceira
    Clique duplo em: Segunda
    Itens selecionados: Terceira
    Itens selecionados: nenhum.
    

Observe que o tratamento de múltiplas seleções através de eventos de itens não é amigável, pois a cada seleção um novo evento é gerado. Por esse motivo, a documentação da API Java recomenda que esse tipo de seleção múltipla em AWT seja efetivada através de algum controle externo, como um botão.

Em Swing, funcionalidade similar à apresentada por List é oferecida pela classe JList, embora algumas diferenças devam ser observadas. Por exemplo, ao contrário de List, um JList não suporta barras de rolagem diretamente, o que deve ser acrescido através de um objeto JScrollPane. Esse exemplo ilustra a construção de um componente JList.


© Ivan Luiz Marques Ricarte
DCA/FEEC/UNICAMP

Last modified: Sat Aug 12 20:16:08 Hora padrão leste Am. Sul 2000