A biblioteca gráfica Swing possibilita o desenvolvimento de interfaces gráficas desenvolvidas para um ambiente computacional heterogêneo com interação mais agradável. Sobre a biblioteca Swing para a plataforma Java 7ª edição, analise as afirmativas a seguir. I. ViewportLayout: gerenciador de layout-padrão para JViewport. II. JTree: controle que exibe um conjunto de dados hierárquicos como uma estrutura de tópicos. III. JToggleButton: implementação de um botão múltiplo com um separador do modelo ToggleButton. Está correto o que se afirma em
- A)I, II e III.
A alternativa reúne as afirmativas I, II e III como corretas. As duas primeiras realmente correspondem à Swing: o JViewport usa, por padrão, o ViewportLayout, e o JTree é o componente próprio para exibir dados hierárquicos em formato de árvore. O problema está na III, porque o JToggleButton é um botão de alternância de dois estados, associado ao ToggleButtonModel, e não um botão múltiplo nem algo descrito por um separador desse modelo.
- B)I, apenas.
A alternativa afirma apenas a I. Essa afirmativa está correta, pois o JViewport tem o ViewportLayout como gerenciador de layout padrão. O erro da alternativa é desconsiderar a II, que também está correta ao definir o JTree como componente para representar conjuntos de dados hierárquicos.
- C)I e II, apenas.
A alternativa indica que apenas I e II estão corretas, e é exatamente isso que o enunciado permite concluir. O JViewport realmente usa o ViewportLayout por padrão, e o JTree serve para apresentar estruturas hierárquicas em forma de tópicos ou árvore. Já a III não procede, porque o JToggleButton é um botão de alternância com estados selecionável e desselecionável, apoiado pelo ToggleButtonModel, e não um botão múltiplo.
- D)II e III, apenas.
A alternativa sustenta que apenas II e III estão corretas. A II de fato descreve corretamente o JTree, mas a III está mal formulada ao tratar o JToggleButton como botão múltiplo, quando na Swing ele funciona como botão de alternância de dois estados. Além disso, a I também é verdadeira, pois o layout padrão do JViewport é o ViewportLayout, então essa opção exclui uma afirmativa que deveria entrar no conjunto correto.
Gabarito: C
No Swing, vale muito conhecer os componentes e seus papéis. O JViewport é a “janela de visualização” e, por padrão, usa o ViewportLayout para organizar o conteúdo exibido nele, então a afirmativa I está correta. O JTree também é clássico: ele mostra dados hierárquicos em forma de árvore, exatamente como uma estrutura de tópicos, o que torna a II correta. A pegadinha aqui aparece na III. O JToggleButton é um botão de alternância, isto é, fica em dois estados, como ligado/desligado, pressionado/não pressionado. Ele não é descrito como “botão múltiplo” nem como algo com “separador do modelo ToggleButton” nesse sentido. Por isso, a III está errada. Assim, o gabarito é a letra C, porque apenas I e II estão corretas. Em prova de Java Swing, a banca costuma cobrar o nome da classe junto com sua função básica, então o melhor remédio é decorar a associação: JViewport - ViewportLayout, JTree - dados hierárquicos, JToggleButton - alternância de estado.