SlideShare uma empresa Scribd logo
© 2010 Pearson. Todos os direitos reservados.
slide 14
} A maioria dos aplicativos utiliza janelas ou caixas de diálogo (também chamadas
de diálogos) para interagir com o usuário.
} JOptionPane (pacote javax.swing) fornece caixas de diálogo pré-construídas
tanto para entrada como para saída e são exibidas via métodos JOptionPane
static.
} A Figura 14.2 utiliza dois diálogos de entrada para obter inteiros do usuário e um
diálogo de mensagem para exibir a soma dos inteiros que o usuário insere.
© 2010 Pearson. Todos os direitos reservados.
slide 15
© 2010 Pearson. Todos os direitos reservados.
slide 16
© 2010 Pearson. Todos os direitos reservados.
slide 17
© 2010 Pearson. Todos os direitos reservados.
slide 18
} O método JOptionPane staticshowInputDialog exibe um diálogo de
entrada, utilizando argumentos String do método como um prompt.
} O usuário digita caracteres no campo de texto, depois clica em OK ou pressiona a
tecla Enter para enviar a String para o programa.
} Clicar em OK fecha (oculta) o diálogo.
} Pode-se inserir somente Strings. É comum na maioria dos componentes GUI.
} Se o usuário clicar em Cancel,retorna null.
} Diálogos JOptionPane são diálogos — o usuário não pode interagir com o
restante do aplicativo.
© 2010 Pearson. Todos os direitos reservados.
slide 19
© 2010 Pearson. Todos os direitos reservados.
slide 20
© 2010 Pearson. Todos os direitos reservados.
slide 21
} Convertendo Strings em valores int
} O método staticparseInt da classe Integer converte seu argumento
String em um valor int.
Diálogos de mensagem
} O método JOptionPane static showMessageDialog exibe um diálogo de
mensagem.
} O primeiro argumento ajuda o aplicativo a determinar onde posicionar o diálogo.
} Se for null, a caixa de diálogo será exibida no centro da tela.
} O segundo argumento é a mensagem a ser exibida.
} O terceiro argumento é a String que deve aparecer na barra de título na parte
superior do diálogo.
} O quarto argumento é o tipo de diálogo de mensagem a ser exibido.
© 2010 Pearson. Todos os direitos reservados.
slide 22
Diálogos de mensagem
} Um diálogo JOption-Pane.PLAIN_MESSAGE não exibe um ícone à esquerda da
mensagem.
} Documentação JOptionPaneonline:
java.sun.com/javase/6/docs/api/javax/swing/JOptionPane.html
© 2010 Pearson. Todos os direitos reservados.
slide 23
© 2010 Pearson. Todos os direitos reservados.
slide 24
© 2010 Pearson. Todos os direitos reservados.
slide 25
} Componentes GUI Swing localizados no pacote javax.swing.
} A maioria são componentes Java puros.
} Escritos, manipulados e exibidos completamente no Java.
} Parte das Java Foundation Classes (JFC) para desenvolvimento de GUI para
múltiplas plataformas.
} Tecnologias desktop JFC e Java:
java.sun.com/javase/technologies/desktop/
© 2010 Pearson. Todos os direitos reservados.
slide 26
© 2010 Pearson. Todos os direitos reservados.
slide 27
} O Abstract Window Toolkit (AWT) do pacote java.awt é outro conjunto de
componentes GUI do Java.
} Quando um aplicativo Java com um AWT GUI executa em diferentes plataformas
Java, os componentes GUI do aplicativo exibem diferentemente em cada
plataforma.
} Juntas, a aparência e a maneira como o usuário interage com o aplicativo são
conhecidas como a aparência e comportamento desse aplicativo.
} Os componentes GUI Swing permitem especificar uma aparência e comportamento
uniforme para o aplicativo em todas as plataformas ou utilizar a aparência e
comportamento personalizados de cada plataforma.
© 2010 Pearson. Todos os direitos reservados.
slide 28
© 2010 Pearson. Todos os direitos reservados.
slide 29
} A maioria dos componentes Swing não está vinculada a componentes GUI reais da
plataforma subjacente.
} Conhecidos como componentes leves.
} Os componentes AWT estão vinculados à plataforma local e são chamados
componentes pesados, porque devem contar com o sistema de janela da
plataforma local para determinar sua funcionalidade e sua aparência e
comportamento.
} Vários componentes Swing são componentes pesados.
© 2010 Pearson. Todos os direitos reservados.
slide 30
© 2010 Pearson. Todos os direitos reservados.
slide 31
© 2010 Pearson. Todos os direitos reservados.
slide 32
} A classe Component (pacote java.awt) declara muitos dos atributos e
comportamentos comuns aos componentes GUI em pacotes java.awt e
javax.swing.
} A maioria dos componentes GUI estende a classe Component direta ou
indiretamente.
} Documentação on-line:
java.sun.com/javase/6/docs/api/java/awt/Component.html
© 2010 Pearson. Todos os direitos reservados.
slide 33
© 2010 Pearson. Todos os direitos reservados.
slide 34
} A classe Container (pacote java.awt) é uma subclasse de Component.
} Components são anexados a Containers para que possam ser organizados e
exibidos na tela.
} Qualquer objeto que é um Container pode ser utilizado para organizar outros
Components em uma GUI.
} Como um Container é um Component, você pode colocar Containers em
outros Containers para ajudar a organizar uma GUI.
} Documentação on-line:
} java.sun.com/javase/6/docs/api/java/awt/Container.html
© 2010 Pearson. Todos os direitos reservados.
slide 35
} A classe JComponent (pacote java.awt) é uma subclasse de Component.
} JComponent é a superclasse de todos os componentes Swing leves, que também
são Containers.
© 2010 Pearson. Todos os direitos reservados.
slide 36
} Alguns recursos de componentes leves comuns suportados por JComponent
incluem:
– aparência e comportamento plugável.
– Teclas de atalho (chamadas mnemônicas).
– Capacidades comuns de tratamento de evento para componentes que iniciam
as mesmas ações em um aplicativo.
– dicas de ferramenta.
– Suporte para acessibilidade.
– Suporte para localização.
} Documentação on-line:
◦ http://java.sun.com/javase/6/docs/api/javax/swing/JOp
tionPane.html
© 2010 Pearson. Todos os direitos reservados.
slide 37
} A maioria das janelas que podem conter componentes GUI Swing são instâncias da
classe JFrame ou uma subclasse de JFrame.
} JFrame é uma subclasse indireta da classe java.awt.Window
} Fornece os atributos básicos e os comportamentos de uma janela:
◦ uma barra de título em cima.
◦ botões para minimizar, maximizar e fechar a janela.
} A maioria de nossos exemplos consistirá em duas classes:
◦ uma subclasse de JFrame que demonstra novos conceitos das GUIs.
◦ uma classe de aplicativo em que main cria e exibe a janela principal do
aplicativo.
© 2010 Pearson. Todos os direitos reservados.
slide 38
© 2010 Pearson. Todos os direitos reservados.
slide 39
© 2010 Pearson. Todos os direitos reservados.
slide 40
© 2010 Pearson. Todos os direitos reservados.
slide 41
© 2010 Pearson. Todos os direitos reservados.
slide 42
} Em uma GUI extensa:
◦ Dificulta identificar o objetivo de cada componente.
◦ Fornece um texto que declara a finalidade de cada componente.
} Esse texto é conhecido como rótulo e é criado com a classe JLabel — uma
subclasse de JComponent.
◦ Exibe texto somente de leitura, uma imagem ou tanto texto como imagem.
© 2010 Pearson. Todos os direitos reservados.
slide 43
} O construtor de JFrame utiliza seu argumento String como o texto na barra de
título da janela.
} Deve anexar cada componente GUI a um contêiner, como um JFrame.
} Em geral, você deve decidir onde posicionar cada componente GUI.
} Isso é conhecido como especificar o layout dos componentes GUI.
} O Java fornece vários gerenciadores de layout que podem ajudá-lo a posicionar os
componentes.
© 2010 Pearson. Todos os direitos reservados.
slide 44
} Muitos IDEs fornecem ferramentas de design de GUI nas quais você pode
especificar o tamanho e localização exatos de um componente
} O IDE gera o código GUI para você.
} Simplifica bastante a criação de GUIs.
} Para assegurar que os exemplos desse livro podem ser utilizados com qualquer
IDE, não utilizamos um IDE para criar o código GUI.
} Utilizamos gerenciadores de layout Java nos nossos exemplos de GUI.
© 2010 Pearson. Todos os direitos reservados.
slide 45
} FlowLayout
} Os componentes GUI são colocados em um contêiner da esquerda para a direita na
ordem em que são adicionados ao contêiner.
} Quando não houver mais espaço para ajustar componentes da esquerda para a
direita, os componentes continuam a aparecer da esquerda para direita na próxima
linha.
} Se o contêiner for redimensionado, um FlowLayout recorre os componentes para
acomodar a nova largura do contêiner, possivelmente com menos ou mais linhas de
componentes GUI.
} O método setLayout é herdado da classe Container. O argumento para o
método deve ser um objeto de uma classe que implementa a interface
LayoutManager (por exemplo, FlowLayout).
© 2010 Pearson. Todos os direitos reservados.
slide 46
© 2010 Pearson. Todos os direitos reservados.
slide 47
© 2010 Pearson. Todos os direitos reservados.
slide 48
} O construtor JLabel pode receber uma String especificando o texto do rótulo.
} O método setToolTipText (herdado por JLabel de JComponent) especifica a
dica de ferramenta que é exibida quando o usuário posiciona o cursor do mouse
sobre um JComponent (como um JLabel).
} Você anexa um componente a um contêiner utilizando o método add, que é
herdado indiretamente da classe Container.
© 2010 Pearson. Todos os direitos reservados.
slide 49
} Os ícones aprimoram a aparência e comportamento de um aplicativo e também são
comumente utilizados para indicar funcionalidade.
} Normalmente, um ícone é especificado com um argumento Icon para um construtor
ou para o método setIcon do componente.
} Um Icon é um objeto de qualquer classe que implementa a interface Icon
(pacote javax.swing).
} ImageIcon (pacote javax.swing) suporta vários formatos de imagem, incluindo
Graphics Interchange Format (GIF), Portable Network Graphics (PNG) e
Joint Photographic Experts Group (JPEG).
© 2010 Pearson. Todos os direitos reservados.
slide 50
} getClass().getResource("bug1.png")
} Invoca o método getClass (herdado indiretamente da classe Object) para
recuperar uma referência para o objeto Class que representa a declaração de
classe LabelFrame.
} Em seguida, invoca o método Class getResource, que retorna a localização da
imagem como um URL.
} O construtor ImageIcon utiliza o URL para localizar a imagem e, então, carrega
essa imagem na memória.
} O carregador de classe sabe onde está cada classe que ele carrega no disco. O
método getResource utiliza o carregador de classe do objeto Class para
determinar a localização de um recurso, como um arquivo de imagem.
© 2010 Pearson. Todos os direitos reservados.
slide 51
} Um JLabel pode exibir um Icon.
} O construtor JLabel pode receber texto e um Icon.
} O último argumento de construtor indica a justificação dos conteúdos do rótulo.
} A interface SwingConstants (pacote javax.swing) declara um conjunto de
constantes de inteiro comuns (como SwingConstants.LEFT) que são
utilizadas com muitos componentes Swing.
} Por padrão, o texto aparece à direita da imagem quando um rótulo contém tanto
texto como imagem.
} Os alinhamentos horizontal e vertical de um JLabel podem ser configurados com
os métodos setHorizontalAlignment e setVerticalAlignment, respectivamente.
© 2010 Pearson. Todos os direitos reservados.
slide 52
© 2010 Pearson. Todos os direitos reservados.
slide 53
} A classe JLabel fornece métodos para alterar a aparência de um rótulo depois de
ele ter sido instanciado.
} O método setText configura o texto exibido no rótulo.
} O método getText recupera o texto atual exibido em um rótulo.
} O método setIcon especifica o Icon a ser exibido em um rótulo.
} O método getIcon recupera o Icon atual exibido em um rótulo.
} Os métodos setHorizontalTextPosition e setVerticalTextPosition especificam a
posição do texto no rótulo.
© 2010 Pearson. Todos os direitos reservados.
slide 54
} Por padrão, fechar uma janela simplesmente a oculta.
} Chamar o método setDefaultCloseOperation (herdado da classe JFrame) com o
argumento JFrame.EXIT_ON_CLOSE indica que o programa deve terminar quando a
janela for fechada pelo usuário.
} O método setSize especifica a largura e altura da janela em pixels.
} O método setVisible com o argumento true exibe a janela na tela.

Mais conteúdo relacionado

PDF
Capitulo 14 -_componentes_gui_parte_3
PDF
Slides Css3
PDF
Html 5 -_aula_2
PDF
Html 5 -_aula_1
PDF
Css 3
PDF
PDF
Introdução a estruturas de dados em python
PPT
Oficina Edição E Manipulação de Imagem Digital
Capitulo 14 -_componentes_gui_parte_3
Slides Css3
Html 5 -_aula_2
Html 5 -_aula_1
Css 3
Introdução a estruturas de dados em python
Oficina Edição E Manipulação de Imagem Digital

Mais procurados (20)

ODP
Variáveis e portugol
PDF
Programação Orientação a Objetos - Herança
PDF
Exercicios - Java Swing
PPTX
React js
PDF
Understanding redux
PDF
Java Programming | Java Tutorial For Beginners | Java Training | Edureka
PPTX
React JS part 1
PPTX
11 Java Script - Exemplos com eventos
PDF
Java orientação a objetos (associacao, composicao, agregacao)
PDF
Programando em python funcoes
PPT
Introdução ao HTML
PPTX
PDF
Labs Jogos Java
PDF
Java variable types
PPTX
Specificity and CSS Selectors
PDF
Aula 2 - POO: Fundamentos da linguagem Java
PDF
Linguagem de Programação Java para Iniciantes
PPTX
React.js - The Dawn of Virtual DOM
PDF
POO - 14 - Vetores
PDF
Variáveis e portugol
Programação Orientação a Objetos - Herança
Exercicios - Java Swing
React js
Understanding redux
Java Programming | Java Tutorial For Beginners | Java Training | Edureka
React JS part 1
11 Java Script - Exemplos com eventos
Java orientação a objetos (associacao, composicao, agregacao)
Programando em python funcoes
Introdução ao HTML
Labs Jogos Java
Java variable types
Specificity and CSS Selectors
Aula 2 - POO: Fundamentos da linguagem Java
Linguagem de Programação Java para Iniciantes
React.js - The Dawn of Virtual DOM
POO - 14 - Vetores
Anúncio

Semelhante a Capitulo 14 -_componentes_gui_parte_1 (20)

PDF
Java swingcomponentes
PDF
Apostila:Curso de java II
PPTX
Java gui
PDF
Interface grafica
PDF
AWT paradigmas de programação em java.pdf
ODP
Java 17 Swing
PDF
Tutorial java swing
PDF
Interfaces Gráficas em Java Parte 1
PDF
Apresentação-Resumo sobre o Java Swing.
PDF
Apostila de programação visual netbeans
PDF
Apostil ade programação visual netbeans
PDF
Introdução ao Java Swing (Interface)
PDF
Aula 1 - Introdução à Interface gráfica do JAVA.pdf
PPT
Java - Gestão de componentes curso profissional
PPTX
Java: Introducao ao Swing
PDF
Aplicações java com netbeans
PDF
Java interface gráfica swing
DOCX
Revisão de Java paraAV1.docx
Java swingcomponentes
Apostila:Curso de java II
Java gui
Interface grafica
AWT paradigmas de programação em java.pdf
Java 17 Swing
Tutorial java swing
Interfaces Gráficas em Java Parte 1
Apresentação-Resumo sobre o Java Swing.
Apostila de programação visual netbeans
Apostil ade programação visual netbeans
Introdução ao Java Swing (Interface)
Aula 1 - Introdução à Interface gráfica do JAVA.pdf
Java - Gestão de componentes curso profissional
Java: Introducao ao Swing
Aplicações java com netbeans
Java interface gráfica swing
Revisão de Java paraAV1.docx
Anúncio

Mais de Pedro Neto (20)

PDF
Como a web funciona
PDF
Como a internet funciona
PDF
Arrays
PDF
Interfaces POO
PDF
Classes abstratas
PDF
Heranca reescrita e_polimorfismo
PDF
Pacotes -organizando_suas_classes_e_bibliotecas
PDF
Daw slide 08
PDF
Daw slide 07
PDF
Daw slide 06
PDF
Daw slide 01
PDF
Sig parte 6
PPTX
Oficina de Computação Gráfica - Peças resultantes
PDF
Minicurso App Inventor
PDF
Programação Orientada a Objetos
PPTX
Avaliação do servidor Web em um Computador Singleboard Raspberry Pi com a Fer...
PPTX
IF MOBILE – DESENVOLVIMENTO DE SOFTWARES PARA DISPOSITIVOS MÓVEIS: APLICATIVO...
PDF
Desenvolvimento de Aplicativos Móveis
PDF
Desenvolvimento Móvel
PDF
Aula - Endereçamento IP v4
Como a web funciona
Como a internet funciona
Arrays
Interfaces POO
Classes abstratas
Heranca reescrita e_polimorfismo
Pacotes -organizando_suas_classes_e_bibliotecas
Daw slide 08
Daw slide 07
Daw slide 06
Daw slide 01
Sig parte 6
Oficina de Computação Gráfica - Peças resultantes
Minicurso App Inventor
Programação Orientada a Objetos
Avaliação do servidor Web em um Computador Singleboard Raspberry Pi com a Fer...
IF MOBILE – DESENVOLVIMENTO DE SOFTWARES PARA DISPOSITIVOS MÓVEIS: APLICATIVO...
Desenvolvimento de Aplicativos Móveis
Desenvolvimento Móvel
Aula - Endereçamento IP v4

Último (20)

PPTX
GUERRAFRIA.pptdddddddddddddddddddddddddx
PDF
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
PDF
Fiqh da adoração (islamismo)
PDF
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
PDF
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
PPTX
biossegurança e segurança no trabalho (6).pptx
PPTX
Pedagogia em Ambientes Não Escolares.pptx
PPTX
NR11 - Treinamento Direcao Defensiva - 2023.pptx
PPTX
HISTÓRIA DO BRASIL - anos de Democracia.pptx
PPTX
disciplulado curso preparatorio para novos
PDF
Organizador Curricular da Educação em Tempo Integral.pdf
PDF
A provisão de jojuador (ramadã) islamismo
PPTX
Revolução Industrial - Aula Expositiva - 3U4.pptx
PDF
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
PDF
metabolismo energtico das clulas-131017092002-phpapp02.pdf
PPTX
INDÚSTRIA_ Histórico da industrialização.pptx
PDF
Combate a Incêndio - Estratégias e Táticas de Combate a Incêndio por Francis...
PPTX
O Romantismo e a identidade brasileira..
PPTX
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
PDF
Uma Introdução às Ciências do Alcorão (Islam)
GUERRAFRIA.pptdddddddddddddddddddddddddx
A relação entre funções executivas e desempenho acadêmico em crianças com Tra...
Fiqh da adoração (islamismo)
FLUXOGRAMA CLASSE lll - Acesso estritamente proximal.pdf
COMO OS CONTOS DE FADAS REFLETEM ARQUÉTIPOS_MEDOS E DESEJOS DO INCONSCIENTE H...
biossegurança e segurança no trabalho (6).pptx
Pedagogia em Ambientes Não Escolares.pptx
NR11 - Treinamento Direcao Defensiva - 2023.pptx
HISTÓRIA DO BRASIL - anos de Democracia.pptx
disciplulado curso preparatorio para novos
Organizador Curricular da Educação em Tempo Integral.pdf
A provisão de jojuador (ramadã) islamismo
Revolução Industrial - Aula Expositiva - 3U4.pptx
Ebook - Matemática_Ensino_Médio_Saeb_V1.pdf
metabolismo energtico das clulas-131017092002-phpapp02.pdf
INDÚSTRIA_ Histórico da industrialização.pptx
Combate a Incêndio - Estratégias e Táticas de Combate a Incêndio por Francis...
O Romantismo e a identidade brasileira..
TREINAMENTO DE INSPETOR DE ANDAIMES.pptx
Uma Introdução às Ciências do Alcorão (Islam)

Capitulo 14 -_componentes_gui_parte_1

  • 1. © 2010 Pearson. Todos os direitos reservados. slide 14 } A maioria dos aplicativos utiliza janelas ou caixas de diálogo (também chamadas de diálogos) para interagir com o usuário. } JOptionPane (pacote javax.swing) fornece caixas de diálogo pré-construídas tanto para entrada como para saída e são exibidas via métodos JOptionPane static. } A Figura 14.2 utiliza dois diálogos de entrada para obter inteiros do usuário e um diálogo de mensagem para exibir a soma dos inteiros que o usuário insere.
  • 2. © 2010 Pearson. Todos os direitos reservados. slide 15
  • 3. © 2010 Pearson. Todos os direitos reservados. slide 16
  • 4. © 2010 Pearson. Todos os direitos reservados. slide 17
  • 5. © 2010 Pearson. Todos os direitos reservados. slide 18 } O método JOptionPane staticshowInputDialog exibe um diálogo de entrada, utilizando argumentos String do método como um prompt. } O usuário digita caracteres no campo de texto, depois clica em OK ou pressiona a tecla Enter para enviar a String para o programa. } Clicar em OK fecha (oculta) o diálogo. } Pode-se inserir somente Strings. É comum na maioria dos componentes GUI. } Se o usuário clicar em Cancel,retorna null. } Diálogos JOptionPane são diálogos — o usuário não pode interagir com o restante do aplicativo.
  • 6. © 2010 Pearson. Todos os direitos reservados. slide 19
  • 7. © 2010 Pearson. Todos os direitos reservados. slide 20
  • 8. © 2010 Pearson. Todos os direitos reservados. slide 21 } Convertendo Strings em valores int } O método staticparseInt da classe Integer converte seu argumento String em um valor int. Diálogos de mensagem } O método JOptionPane static showMessageDialog exibe um diálogo de mensagem. } O primeiro argumento ajuda o aplicativo a determinar onde posicionar o diálogo. } Se for null, a caixa de diálogo será exibida no centro da tela. } O segundo argumento é a mensagem a ser exibida. } O terceiro argumento é a String que deve aparecer na barra de título na parte superior do diálogo. } O quarto argumento é o tipo de diálogo de mensagem a ser exibido.
  • 9. © 2010 Pearson. Todos os direitos reservados. slide 22 Diálogos de mensagem } Um diálogo JOption-Pane.PLAIN_MESSAGE não exibe um ícone à esquerda da mensagem. } Documentação JOptionPaneonline: java.sun.com/javase/6/docs/api/javax/swing/JOptionPane.html
  • 10. © 2010 Pearson. Todos os direitos reservados. slide 23
  • 11. © 2010 Pearson. Todos os direitos reservados. slide 24
  • 12. © 2010 Pearson. Todos os direitos reservados. slide 25 } Componentes GUI Swing localizados no pacote javax.swing. } A maioria são componentes Java puros. } Escritos, manipulados e exibidos completamente no Java. } Parte das Java Foundation Classes (JFC) para desenvolvimento de GUI para múltiplas plataformas. } Tecnologias desktop JFC e Java: java.sun.com/javase/technologies/desktop/
  • 13. © 2010 Pearson. Todos os direitos reservados. slide 26
  • 14. © 2010 Pearson. Todos os direitos reservados. slide 27 } O Abstract Window Toolkit (AWT) do pacote java.awt é outro conjunto de componentes GUI do Java. } Quando um aplicativo Java com um AWT GUI executa em diferentes plataformas Java, os componentes GUI do aplicativo exibem diferentemente em cada plataforma. } Juntas, a aparência e a maneira como o usuário interage com o aplicativo são conhecidas como a aparência e comportamento desse aplicativo. } Os componentes GUI Swing permitem especificar uma aparência e comportamento uniforme para o aplicativo em todas as plataformas ou utilizar a aparência e comportamento personalizados de cada plataforma.
  • 15. © 2010 Pearson. Todos os direitos reservados. slide 28
  • 16. © 2010 Pearson. Todos os direitos reservados. slide 29 } A maioria dos componentes Swing não está vinculada a componentes GUI reais da plataforma subjacente. } Conhecidos como componentes leves. } Os componentes AWT estão vinculados à plataforma local e são chamados componentes pesados, porque devem contar com o sistema de janela da plataforma local para determinar sua funcionalidade e sua aparência e comportamento. } Vários componentes Swing são componentes pesados.
  • 17. © 2010 Pearson. Todos os direitos reservados. slide 30
  • 18. © 2010 Pearson. Todos os direitos reservados. slide 31
  • 19. © 2010 Pearson. Todos os direitos reservados. slide 32 } A classe Component (pacote java.awt) declara muitos dos atributos e comportamentos comuns aos componentes GUI em pacotes java.awt e javax.swing. } A maioria dos componentes GUI estende a classe Component direta ou indiretamente. } Documentação on-line: java.sun.com/javase/6/docs/api/java/awt/Component.html
  • 20. © 2010 Pearson. Todos os direitos reservados. slide 33
  • 21. © 2010 Pearson. Todos os direitos reservados. slide 34 } A classe Container (pacote java.awt) é uma subclasse de Component. } Components são anexados a Containers para que possam ser organizados e exibidos na tela. } Qualquer objeto que é um Container pode ser utilizado para organizar outros Components em uma GUI. } Como um Container é um Component, você pode colocar Containers em outros Containers para ajudar a organizar uma GUI. } Documentação on-line: } java.sun.com/javase/6/docs/api/java/awt/Container.html
  • 22. © 2010 Pearson. Todos os direitos reservados. slide 35 } A classe JComponent (pacote java.awt) é uma subclasse de Component. } JComponent é a superclasse de todos os componentes Swing leves, que também são Containers.
  • 23. © 2010 Pearson. Todos os direitos reservados. slide 36 } Alguns recursos de componentes leves comuns suportados por JComponent incluem: – aparência e comportamento plugável. – Teclas de atalho (chamadas mnemônicas). – Capacidades comuns de tratamento de evento para componentes que iniciam as mesmas ações em um aplicativo. – dicas de ferramenta. – Suporte para acessibilidade. – Suporte para localização. } Documentação on-line: ◦ http://java.sun.com/javase/6/docs/api/javax/swing/JOp tionPane.html
  • 24. © 2010 Pearson. Todos os direitos reservados. slide 37 } A maioria das janelas que podem conter componentes GUI Swing são instâncias da classe JFrame ou uma subclasse de JFrame. } JFrame é uma subclasse indireta da classe java.awt.Window } Fornece os atributos básicos e os comportamentos de uma janela: ◦ uma barra de título em cima. ◦ botões para minimizar, maximizar e fechar a janela. } A maioria de nossos exemplos consistirá em duas classes: ◦ uma subclasse de JFrame que demonstra novos conceitos das GUIs. ◦ uma classe de aplicativo em que main cria e exibe a janela principal do aplicativo.
  • 25. © 2010 Pearson. Todos os direitos reservados. slide 38
  • 26. © 2010 Pearson. Todos os direitos reservados. slide 39
  • 27. © 2010 Pearson. Todos os direitos reservados. slide 40
  • 28. © 2010 Pearson. Todos os direitos reservados. slide 41
  • 29. © 2010 Pearson. Todos os direitos reservados. slide 42 } Em uma GUI extensa: ◦ Dificulta identificar o objetivo de cada componente. ◦ Fornece um texto que declara a finalidade de cada componente. } Esse texto é conhecido como rótulo e é criado com a classe JLabel — uma subclasse de JComponent. ◦ Exibe texto somente de leitura, uma imagem ou tanto texto como imagem.
  • 30. © 2010 Pearson. Todos os direitos reservados. slide 43 } O construtor de JFrame utiliza seu argumento String como o texto na barra de título da janela. } Deve anexar cada componente GUI a um contêiner, como um JFrame. } Em geral, você deve decidir onde posicionar cada componente GUI. } Isso é conhecido como especificar o layout dos componentes GUI. } O Java fornece vários gerenciadores de layout que podem ajudá-lo a posicionar os componentes.
  • 31. © 2010 Pearson. Todos os direitos reservados. slide 44 } Muitos IDEs fornecem ferramentas de design de GUI nas quais você pode especificar o tamanho e localização exatos de um componente } O IDE gera o código GUI para você. } Simplifica bastante a criação de GUIs. } Para assegurar que os exemplos desse livro podem ser utilizados com qualquer IDE, não utilizamos um IDE para criar o código GUI. } Utilizamos gerenciadores de layout Java nos nossos exemplos de GUI.
  • 32. © 2010 Pearson. Todos os direitos reservados. slide 45 } FlowLayout } Os componentes GUI são colocados em um contêiner da esquerda para a direita na ordem em que são adicionados ao contêiner. } Quando não houver mais espaço para ajustar componentes da esquerda para a direita, os componentes continuam a aparecer da esquerda para direita na próxima linha. } Se o contêiner for redimensionado, um FlowLayout recorre os componentes para acomodar a nova largura do contêiner, possivelmente com menos ou mais linhas de componentes GUI. } O método setLayout é herdado da classe Container. O argumento para o método deve ser um objeto de uma classe que implementa a interface LayoutManager (por exemplo, FlowLayout).
  • 33. © 2010 Pearson. Todos os direitos reservados. slide 46
  • 34. © 2010 Pearson. Todos os direitos reservados. slide 47
  • 35. © 2010 Pearson. Todos os direitos reservados. slide 48 } O construtor JLabel pode receber uma String especificando o texto do rótulo. } O método setToolTipText (herdado por JLabel de JComponent) especifica a dica de ferramenta que é exibida quando o usuário posiciona o cursor do mouse sobre um JComponent (como um JLabel). } Você anexa um componente a um contêiner utilizando o método add, que é herdado indiretamente da classe Container.
  • 36. © 2010 Pearson. Todos os direitos reservados. slide 49 } Os ícones aprimoram a aparência e comportamento de um aplicativo e também são comumente utilizados para indicar funcionalidade. } Normalmente, um ícone é especificado com um argumento Icon para um construtor ou para o método setIcon do componente. } Um Icon é um objeto de qualquer classe que implementa a interface Icon (pacote javax.swing). } ImageIcon (pacote javax.swing) suporta vários formatos de imagem, incluindo Graphics Interchange Format (GIF), Portable Network Graphics (PNG) e Joint Photographic Experts Group (JPEG).
  • 37. © 2010 Pearson. Todos os direitos reservados. slide 50 } getClass().getResource("bug1.png") } Invoca o método getClass (herdado indiretamente da classe Object) para recuperar uma referência para o objeto Class que representa a declaração de classe LabelFrame. } Em seguida, invoca o método Class getResource, que retorna a localização da imagem como um URL. } O construtor ImageIcon utiliza o URL para localizar a imagem e, então, carrega essa imagem na memória. } O carregador de classe sabe onde está cada classe que ele carrega no disco. O método getResource utiliza o carregador de classe do objeto Class para determinar a localização de um recurso, como um arquivo de imagem.
  • 38. © 2010 Pearson. Todos os direitos reservados. slide 51 } Um JLabel pode exibir um Icon. } O construtor JLabel pode receber texto e um Icon. } O último argumento de construtor indica a justificação dos conteúdos do rótulo. } A interface SwingConstants (pacote javax.swing) declara um conjunto de constantes de inteiro comuns (como SwingConstants.LEFT) que são utilizadas com muitos componentes Swing. } Por padrão, o texto aparece à direita da imagem quando um rótulo contém tanto texto como imagem. } Os alinhamentos horizontal e vertical de um JLabel podem ser configurados com os métodos setHorizontalAlignment e setVerticalAlignment, respectivamente.
  • 39. © 2010 Pearson. Todos os direitos reservados. slide 52
  • 40. © 2010 Pearson. Todos os direitos reservados. slide 53 } A classe JLabel fornece métodos para alterar a aparência de um rótulo depois de ele ter sido instanciado. } O método setText configura o texto exibido no rótulo. } O método getText recupera o texto atual exibido em um rótulo. } O método setIcon especifica o Icon a ser exibido em um rótulo. } O método getIcon recupera o Icon atual exibido em um rótulo. } Os métodos setHorizontalTextPosition e setVerticalTextPosition especificam a posição do texto no rótulo.
  • 41. © 2010 Pearson. Todos os direitos reservados. slide 54 } Por padrão, fechar uma janela simplesmente a oculta. } Chamar o método setDefaultCloseOperation (herdado da classe JFrame) com o argumento JFrame.EXIT_ON_CLOSE indica que o programa deve terminar quando a janela for fechada pelo usuário. } O método setSize especifica a largura e altura da janela em pixels. } O método setVisible com o argumento true exibe a janela na tela.