chapter 25 gui components: part 2
TRANSCRIPT
![Page 1: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/1.jpg)
Java Como Programar, 8/E
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 1
![Page 2: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/2.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 2
(C) 2010 Pearson Education, Inc. Todos os direitos reservados.
![Page 3: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/3.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 3
![Page 4: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/4.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 4
Neste capítulo, discutimos:
◦ Componentes e gerenciadores de layout adicionais e projetamos a base para construir GUIs mais complexas.
◦ Sliders que permitem selecionar a partir de um intervalo de valores inteiros.
◦ Detalhes adicionais de janelas.
◦ Menus que permitem realizar tarefas eficientemente no programa.
◦ Interface plugável (pluggable look-and-feel, PLAF) do Swing.
◦ Interface de múltiplos documentos (multiple document interface, MDI) — uma janela principal (frequentemente chamada janela-pai) contendo outras janelas (frequentemente chamadas janelas-filhas) para gerenciar vários documentos abertos em paralelo.
![Page 5: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/5.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 5
Jsliders permitem a um usuário selecionar a partir de um intervalo de valores
inteiros.
A Figura 25.1 mostra um JSlider horizontal com marcas de medidas e a caixa
de rolagem que permitem ao usuário selecionar um valor.
Podem ser personalizadas para exibir marcas de medida principais, marcas de
medida secundárias e rótulos para as marcas de medida.
Também suportam marcas de aderência, que fazem a miniatura, quando
posicionada entre duas marcas, aderir à marca mais próxima.
![Page 6: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/6.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 6
![Page 7: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/7.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 7
A tecla da seta para baixo e a tecla da seta para cima também fazem com que a
caixa de rolagem do JSlider diminua ou aumente por 1, respectivamente.
A tecla PgDn (page down) e a tecla PgUp (page up) fazem com que o marcador do
JSlider diminua ou aumente por incrementos de bloco de um décimo do
intervalo de valores, respectivamente.
A tecla Home move a caixa de rolagem para o valor mínimo do JSlider, e a tecla
End move a caixa de rolagem para o valor máximo do JSlider.
![Page 8: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/8.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 8
JSliders têm uma orientação horizontal ou uma orientação vertical.
Para um JSlider horizontal, o valor mínimo está na extremidade esquerda do
JSlider e o valor máximo está na extremidade direita.
Para um JSlider vertical, o valor mínimo está na parte inferior e o valor máximo
na parte superior.
As posições de valor mínimo e máximo em um JSlider podem ser alternadas
chamando o método JSlider setInverted com argumento boolean true.
![Page 9: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/9.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 9
![Page 10: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/10.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 10
![Page 11: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/11.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 11
![Page 12: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/12.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 12
![Page 13: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/13.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 13
![Page 14: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/14.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 14
![Page 15: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/15.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 15
O método JSlider setMajorTickSpacing indica que cada marca de medida
principal representa 10 valores no intervalo de valores suportados pelo JSlider.
O método JSlider setPaintTicks com um argumento true indica que as
marcas de medida devem ser exibidas (elas não são exibidas por padrão).
JSliders geram ChangeEvents (o pacote javax.swing.event) em
resposta a interações de usuário.
Tratado por um ChangeListener (pacote javax.swing.event) que declara
o método stateChanged.
O método JSlider getValue retorna a posição da caixa de rolagem atual.
![Page 16: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/16.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 16
Um JFrame é uma janela com uma barra de título e uma borda.
JFrame é uma subclasse de Frame, que é uma subclasse de Window.
Estes são componentes Swing GUI ―de maior peso‖.
Uma janela é fornecida pelo kit de ferramentas da plataforma local.
Por padrão, quando o usuário fecha uma janela JFrame, ela é oculta, mas é possível controlar isso com o método JFrame setDefaultCloseOperation.
A interface WindowConstants (pacote javax.swing), que a classe JFrameimplementa, declara três constantes — DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE e HIDE_ON_CLOSE (o padrão) — para usar com esse método.
![Page 17: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/17.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 17
A classe Window (uma superclasse indireta de JFrame) declara o método dispose para retornar os recursos de uma janela para o sistema.
Quando uma janela não é mais necessária em um aplicativo, você deve descartá-la explicitamente.
Pode ser feito chamando o método dispose de Window ou chamando o método setDefaultCloseOperation com o argumento WindowConstants.DISPOSE_ON_CLOSE.
Uma janela não é exibida até o programa invocar o método setVisible da janela com um argumento true.
O tamanho de uma janela deve ser configurado com uma chamada para o método setSize.
A posição de uma janela quando aparece na tela é especificada com o método setLocation.
![Page 18: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/18.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 18
![Page 19: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/19.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 19
![Page 20: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/20.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 20
![Page 21: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/21.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 21
Quando o usuário manipula a janela, ocorrem eventos de janela.
Os ouvintes de evento são registrados para eventos de janela com o método Window addWindowListener.
A interface WindowListener fornece sete métodos de tratamento de evento de janela.
windowActivated (chamado quando o usuário torna uma janela ativa).
windowClosed (chamado depois que a janela é fechada).
windowClosing (chamado quando o usuário inicia o fechamento da janela).
windowDeactivated (chamado quando o usuário torna outra janela ativa).
windowDeiconified (chamado quando a janela é restaurada a partir do estado minimizado).
windowIconified (chamado quando a janela está minimizada).
windowOpened (chamado logo que a janela é aberta pela primeira vez).
![Page 22: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/22.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 22
![Page 23: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/23.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 23
Os menus são uma parte integrante das GUIs.
Permitem que o usuário realize ações sem poluir desnecessariamente uma GUI com
componentes extras.
Em GUIs Swing, os menus podem ser anexados somente aos objetos das classes
que fornecem o método setJMenuBar.
Duas dessas classes são JFrame e JApplet.
As classes usadas para declarar menus são JMenuBar, JMenu, JMenuItem,
JCheckBoxMenuItem e a JRadioButtonMenuItem.
![Page 24: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/24.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 24
A classe JMenuBar (uma subclasse de JComponent) gerencia uma barra de menu, que é um contêiner para menus.
A classe JMenu (uma subclasse do javax.swing.JMenuItem) contém os métodos necessários para gerenciar menus.
Os menus contêm itens de menu e são adicionados a barras de menus ou a outros menus como submenus.
Classe JMenuItem (uma subclasse do javax.swing.AbstractButton) —contém os métodos necessários para gerenciar itens de menu.
Um item do menu causa um evento de ação quando clicado.
Pode ser também um submenu que fornece mais itens de menu a partir dos quais o usuário pode selecionar.
![Page 25: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/25.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 25
Classe JCheckBoxMenuItem (uma subclasse de javax.swing.JMenuItem) — itens de menu que podem ser ativados e desativados.
Classe JRadioButtonMenuItem (uma subclasse de javax.swing.JMenuItem) — itens de menu que podem ser ativados e desativados como JCheckBoxMenuItems.
Quando múltiplos JRadioButtonMenuItems são mantidos como parte de um ButtonGroup, somente um item no grupo pode ser selecionado em determinado momento.
Mnemônicos podem fornecer acesso rápido a um menu ou ao item de menu do teclado.
Pode ser usado com todas as subclasses de javax.swing.AbstractButton.
O método JMenu setMnemonic (herdado da classe AbstractButton) indica o mnemônico de um menu.
![Page 26: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/26.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 26
![Page 27: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/27.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 27
![Page 28: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/28.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 28
![Page 29: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/29.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 29
![Page 30: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/30.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 30
![Page 31: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/31.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 31
![Page 32: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/32.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 32
![Page 33: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/33.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 33
![Page 34: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/34.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 34
![Page 35: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/35.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 35
![Page 36: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/36.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 36
![Page 37: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/37.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 37
![Page 38: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/38.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 38
Na maioria das utilizações anteriores de showMessageDialog, o primeiro argumento era null.
O primeiro argumento especifica a janela-pai que ajuda a determinar onde a caixa de diálogo será exibida.
Se especificada como null, a caixa de diálogo aparece no centro da tela.
Caso contrário, ela aparece centralizada na janela-pai especificada.
Ao utilizar a referência this em uma classe interna, especificar this sozinha faz referência ao objeto da classe interna.
Para referir-se à referência this dos objetos da classe externa, qualifique thiscom o nome da classe externa e um ponto (.).
![Page 39: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/39.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 39
Em geral, as caixas de diálogo são modais — não permitem que nenhuma outra janela do aplicativo seja acessada até que a caixa de diálogo seja fechada.
A classe JDialog pode ser utilizada para criar seus próprios diálogos modais ou não modais.
O método JMenuBar add anexa um menu a um JMenuBar.
O método AbstractButtonsetSelected seleciona o botão especificado.
O método JMenu addSeparator adiciona uma linha separadora horizontal a um menu.
O método AbstractButton isSelected determina se um botão está selecionado.
![Page 40: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/40.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 40
![Page 41: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/41.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 41
![Page 42: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/42.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 42
![Page 43: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/43.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 43
![Page 44: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/44.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 44
![Page 45: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/45.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 45
Menus pop-up sensíveis ao contexto são criados com a classe JPopupMenu(uma subclasse de JComponent).
Fornecem opções que são específicas ao componente para o qual o evento de gatilho pop-up foi gerado. Em geral, ocorre quando o usuário pressiona e libera o botão direito do mouse.
O método MouseEvent isPopupTrigger retorna true se o evento de gatilho pop-up ocorrer.
O método JPopupMenushow exibe um JPopupMenu.
O primeiro argumento especifica o componente de origem. Sua posição ajuda a determinar onde o JPopupMenu aparecerá na tela.
Os dois últimos argumentos são as coordenadas x-y (medidas a partir do canto superior esquerdo do componente de origem) em que o JPopupMenu deve aparecer.
![Page 46: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/46.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 46
![Page 47: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/47.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 47
![Page 48: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/48.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 48
![Page 49: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/49.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 49
![Page 50: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/50.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 50
![Page 51: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/51.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 51
![Page 52: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/52.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 52
![Page 53: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/53.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 53
Componentes AWT GUI do Java (pacote java.awt) assumem a aparência e comportamento da plataforma em que o programa executa.
Introduz questões de portabilidade interessantes.
Componentes GUI leves do Swing fornecem funcionalidade uniforme pelas plataformas e definem uma aparência e comportamento uniformes por diversas plataformas.
A partir do Java SE 6 Update 10, essa é a aparência e funcionamento do Nimbus(Seção 14.2).
As versões anteriores do Java utilizavam a aparência e comportamento metal, que ainda são o padrão.
Podem personalizar a aparência e comportamento.
As aparências e funcionamentos instalados irão variar entre uma e outra plataforma.
![Page 54: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/54.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 54
![Page 55: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/55.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 55
![Page 56: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/56.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 56
![Page 57: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/57.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 57
![Page 58: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/58.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 58
![Page 59: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/59.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 59
![Page 60: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/60.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 60
![Page 61: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/61.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 61
![Page 62: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/62.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 62
![Page 63: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/63.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 63
![Page 64: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/64.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 64
A classe UIManager (pacote javax.swing) contém a(uma) classe (aninhada) LookAndFeelInfo aninhada(cortar) (uma classe public static) que mantém informações sobre a aparência e comportamento.
O método getInstalledLookAndFeels da classe UIManagerstaticobtém um array de objetos UIManager.LookAndFeelInfo que descrevem cada aparência e comportamento disponível no seu sistema.
O método setLookAndFeel estático da classe UIManager muda a aparência e comportamento.
O método getClassName da classe UIManager.LookAndFeelInfodetermina o nome da classe de aparência e comportamento que corresponda ao objeto UIManager.LookAndFeelInfo.
O método updateComponentTreeUI estático do SwingUtilities muda a aparência e comportamento de cada componente associado ao seu argumento Component para a nova aparência e comportamento.
![Page 65: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/65.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 65
![Page 66: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/66.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 66
Interface de múltiplos documentos (multiple document interface – MDI) – uma
janela principal (chamada de janela-pai) contendo outras janelas (chamadas de
janelas-filhas), para lidar com vários documentos abertos que estão em
processamento paralelo.
As classes JDesktopPane e JInternalFrame do Swing implementam interfaces
de vários documentos.
![Page 67: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/67.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 67
![Page 68: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/68.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 68
![Page 69: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/69.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 69
![Page 70: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/70.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 70
![Page 71: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/71.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 71
![Page 72: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/72.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 72
![Page 73: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/73.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 73
![Page 74: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/74.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 74
O construtor JInternalFrame usado aqui aceita cinco argumentos◦ uma String para a barra de título da janela interna.◦ um boolean que indica se o quadro interno pode ser redimensionado pelo
usuário.◦ um boolean que indica se o quadro interno pode ser fechado pelo usuário.◦ um boolean que indica se o quadro interno pode ser maximizado pelo usuário.
◦ um boolean que indica se o quadro interno pode ser minimizado pelo usuário.
Para cada um dos argumentos boolean, um valor true indica se a operação deve ser permitida (como é caso aqui).
![Page 75: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/75.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 75
Um JInternalFrame tem um painel de conteúdo ao qual componentes GUI
podem ser anexados.
O método JInternalFramepack configura o tamanho da janela-filha.
Utiliza os tamanhos preferidos dos componentes para determinar o tamanho da
janela.
As classes JInternalFrame e JDesktopPane fornecem muitos métodos
para gerenciar janelas-filhas.
![Page 76: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/76.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 76
Um JTabbedPane organiza componentes GUI em camadas, das quais somente
uma é visível por vez.
Usuários acessam cada camada clicando na guia.
As guias aparecem na parte superior por padrão, mas também podem ser
posicionadas à esquerda, direita ou parte inferior do JTabbedPane.
Qualquer componente pode ser posicionado em uma guia.
Se o componente for um contêiner, como um painel, ele poderá utilizar qualquer
gerenciador de layout para organizar vários componentes na guia.
A classe JTabbedPane é uma subclasse de JComponent.
![Page 77: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/77.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 77
![Page 78: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/78.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 78
![Page 79: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/79.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 79
![Page 80: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/80.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 80
![Page 81: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/81.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 81
O método JTabbedPane addTab adiciona uma nova guia. Na versão com
quatro argumentos:
◦ O primeiro argumento é uma String que especifica o título da guia.
◦ O segundo é uma referência Icon que especifica um ícone a ser exibido na guia
— pode ser null.
◦ O terceiro é um Component a ser exibido quando o usuário clicar na guia.
◦ O último é uma String que especifica a dica de ferramenta da guia.
![Page 82: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/82.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 82
Esta seção apresenta dois gerenciadores adicionais de layout (resumidos na Figura
25.15).
![Page 83: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/83.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 83
![Page 84: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/84.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 84
O gerenciador BoxLayout (no pacote javax.swing) organiza os
componentes GUI horizontalmente ao longo do eixo x ou verticalmente ao longo do eixo y de um contêiner.
![Page 85: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/85.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 85
![Page 86: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/86.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 86
![Page 87: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/87.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 87
![Page 88: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/88.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 88
![Page 89: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/89.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 89
![Page 90: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/90.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 90
![Page 91: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/91.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 91
O método static Box createVerticalBox retorna referências aos contêineres Box com um BoxLayout vertical no qual componentes GUI são organizados de cima para baixo.
Antes de adicionar cada botão, a linha 33 adiciona uma estrutura vertical ao contêiner com um método static createVerticalBox da classe Box.
Uma estrutura vertical é um componente GUI invisível que tem uma altura fixa em pixels e é utilizada para garantir uma quantidade fixa de espaço entre componentes GUI.
Criada com o método static Box createVerticalStrut. Quando o contêiner é redimensionado, a distância entre os componentes GUI
separados por estruturas (struts) não muda.
A classe Box também declara o método createHorizontalStrut para BoxLayouts horizontais.
![Page 92: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/92.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 92
A cola horizontal é um componente GUI invisível que pode ser utilizado entre
componentes GUI de tamanho fixo para ocupar espaço adicional.
Criado com o método static da classe Box createVerticalStrut.
Quando o contêiner é redimensionado, componentes separados por componentes de
cola permanecem no mesmo tamanho, mas a cola se expande ou se contrai para
ocupar o espaço entre eles.
A classe Box também declara o método createVerticalGlue para BoxLayouts
verticais.
![Page 93: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/93.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 93
Uma área rígida é um componente GUI invisível que tem sempre a largura e altura fixas em pixels.
Criada com o método static da classe Box createRigidArea
O construtor BoxLayout recebe uma referência ao contêiner cujo layout ele controla, e uma constante indicando se o layout é horizontal (BoxLayout.X_AXIS) ou vertical (BoxLayout.Y_AXIS).
O método static da classe Box createGlue cria um componente que expande ou contrai com base no tamanho de Box.
JTabbedPane.TOP enviado ao construtor indica que as guias devem aparecer na parte superior do JTabbedPane.
JTabbedPane.SCROLL_TAB_LAYOUT especifica que as guias devem recorrer para uma nova linha se houver muitos espaços para se ajustarem em uma única linha.
![Page 94: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/94.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 94
Um dos gerenciadores de layout predefinidos mais poderosos é GridBagLayout
(no pacote java.awt).
Semelhante ao GridLayout, mas muito mais flexível.
Os componentes podem variar de tamanho e podem ser adicionados em qualquer
ordem.
![Page 95: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/95.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 95
O primeiro passo na utilização de GridBagLayout é determinar a aparência da
GUI.
Desenhe a GUI e depois desenhe uma grade sobre ela, dividindo os componentes
em linhas e colunas.
Os números iniciais de linhas e colunas devem ser 0, de modo que o gerenciador de
layout GridBagLayout possa utilizar os números de linha e coluna para
posicionar adequadamente os componentes na grade.
A Figura 25.18 demonstra como desenhar linhas e colunas sobre uma GUI.
![Page 96: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/96.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 96
![Page 97: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/97.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 97
Um objeto GridBagConstraints descreve como um componente é posicionado
em um GridBagLayout.
Vários campos GridBagConstraints estão resumidos na Figura 25.19.
O método GridBagLayout setConstraints aceita um argumento
Component e um argumento GridBagConstraints.
![Page 98: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/98.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 98
![Page 99: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/99.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 99
![Page 100: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/100.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 100
![Page 101: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/101.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 101
![Page 102: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/102.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 102
![Page 103: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/103.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 103
![Page 104: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/104.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 104
![Page 105: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/105.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 105
![Page 106: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/106.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 106
Uma variação de GridBagLayout usa as constantes GridBagConstraintsRELATIVE e REMAINDER.
RELATIVE especifica que o penúltimo componente em uma linha particular deve
ser posicionado à direita do componente anterior na linha.
REMAINDER especifica que um componente é o último componente em uma linha.
![Page 107: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/107.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 107
![Page 108: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/108.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 108
![Page 109: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/109.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 109
![Page 110: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/110.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 110
![Page 111: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/111.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 111
![Page 112: Chapter 25 GUI Components: Part 2](https://reader034.vdocuments.us/reader034/viewer/2022042611/589da5b41a28ab9f4a8bd4ee/html5/thumbnails/112.jpg)
Deitel/Deitel, 8e. • Java – Como programar • Copyright © 2010 Pearson EducationSlide 112