AWT e Swing (Slides)

7 Pages • 1,011 Words • PDF • 642.5 KB
Uploaded at 2021-09-24 12:54

This document was submitted by our user and they confirm that they have the consent to share it. Assuming that you are writer or own the copyright of this document, report to us by using this DMCA report button.


21/08/2020

Desenvolvendo aplicações com Interfaces Gráficas (GUI’s) Aplicação em Ling.de Programação Orientada a Objetos Prof. Leandro Fernandes

1

Graphical User Interface – GUI • As interfaces gráficas oferecem ao usuário uma forma mais intuitiva e familiar de interação com a aplicação. Permitem que o processo ocorra de modo mais fluido e flexível, além de proporcionar uma experiência interativa mais rica. • As GUIs são construídas a partir de componentes gráficos, que nada mais são do que objetos com os quais o usuário pode interagir através do mouse, teclado, toque, gesto e voz, por exemplo. • Ao desenvolver uma GUI é importante selecionar os componentes gráficos adequados para uma boa interação com o usuário.

2

1

21/08/2020

Construindo GUI’s em Java Há diferentes maneiras para construir programas deste tipo, usando: • AWT – Abstract Window Toolkit (java.awt.*): • API básica para o desenvolvimento de GUIs e applets em Java

• Swing (javax.swing.*): • Extensão da API básica com inclusão de componentes visuais de mais alto nível

• Java 2D (java.awt e java.awt.image): • Adição de classes ao pacote básico para desenho avançado de imagens em 2D

• SWT – Standard Widget Toolkit (org.eclipse.swt.*): • Biblioteca desenvolvida pela IBM e atualmente mantida pela Eclipse Foundation

3

Roteiro básico para criação de GUI’s 1. Instanciar os componentes de interface • Janelas, menus, botões, campos de textos, etc.

2. Definir valores para suas propriedades e características. • Texto, cor, tamanho, localidade, etc.

3. Adicionar os componentes em containers • Ex: a quais elementos o componente pertence, isto é, como serão agrupados e qual a sua diagramação (layout)

4. Estabelecer o tratamento de eventos de interface • Ex: o que deve ocorrer quando o usuário clicar um botão ou como alterar o conteúdo de um componente quando um outro sofre alguma alteração

4

2

21/08/2020

Abstract Window ToolKit – AWT • Pacote de componentes visuais do JDK 1.0.x e JDK 1.1 • Conexão entre a aplicação e a interface gráfica nativa, despreocupando o programador dos detalhes necessários para que a aplicação rode sobre aquele tipo de GUI. • Mínimo denominador comum entre plataformas

• Implementação baseada em peers • Os componentes AWT dependem de códigos C nativos (chamados peers) para manipular suas funcionalidades e, portanto, dependente da plataforma.

• Look & feel varia de acordo com a plataforma • Seus componentes são frequentemente chamados de heavyweight.

5

Componentes AWT • Components, Containers, MenuComponents • Todo Container é um Component • Nem todo Component é um Container • MenuComponentes formam uma hierarquia à parte

Component

Canvas

Button

ScrollBar

CheckBox

• Containers • Panel, Frame

Label

Choice

Container

List

• Components atômicos (que não são Containers) • Button, TextField, TextArea, Label, Choice, Checkbox, List, ...

TextComponent

Panel

Window

• MenuComponents • MenuBar, PopupMenu

TextField

TextArea

Frame

Dialog

6

3

21/08/2020

Quando ocorre um evento?

ActionEvent

WindowEvent

MouseEvent

MouseMotionEvent

• Usuário clica em um botão, pressiona return dentro de um textfield ou escolhe um item de menu

• Usuário fecha, minimiza, maximiza, etc., uma janela

• Usuário pressiona entra ou sai com o mouse de dentro um componente

• Usuário move o mouse sobre um componente

ComponentEvent

FocusEvent

ItemEvent

• Componente fica visível, é adicionado a um container

• Componente recebe o foco do teclado

• Seleção de uma tabela ou lista é modificada

7

Componentes e seus Eventos EventObject Component

Canvas

Label

Button

ScrollBar

Choice

TextComponent

TextField

AWTEvent CheckBox

Container Panel

TextArea

List

Window

Frame

Dialog

ActionEvent TextEvent

ComponentEvent

ContainerEvent FocusEvent

AdjustementEvent ItemEvent

WindowEvent

InputEvent KeyEvent

PaintEvent

MouseEvent

8

4

21/08/2020

Observadores de Eventos (Listeners) EventListener AdjustementListener

ActionListener

TextListener

ItemListener

MouseMotionListener

ContainerListener

ComponentListener

WindowListener

MouseMotionAdapter

ContainerAdapter

ComponentAdapter

WindowAdapter

KeyListener

FocusListener

MouseListener

KeyAdapter

FocusAdapter

MouseAdapter

9

Observadores de Eventos (Listeners) AdjustementListener adjustementValueChanged(Adjustem entEvent)

ActionListener actionPerformed(ActionEvent)

ItemListener itemStateChanged(ItemEvent)

TextListener textValueChanged(TextEvent)

KeyListener keyPressed(KeyEvent) keyReleased(KeyEvent) keyTyped(KeyEvent)

ContainerListener componentAdded(ContainerEvent) componentRemoved(ContainerEvent)

ComponetListener componentHidden(ComponentEvent) componentMoved(ComponentEvent) componentResized(ComponentEvent) componentShown(ComponentEvent)

FocusListener focusGained(FocusEvent) focusLost(FocusEvent)

WindowListener windowActivated(WindowEvent) windowClosed(WindowEvent) windowClosing(WindowEvent) windowDeactivated(WindowEvent) windowDeiconified(WindowEvent) windowIconified(WindowEvent) windowOpened(WindowEvent)

MouseMotionListener mouseDragged(MouseEvent) mouseMoved(MouseEvent)

MouseListener mouseClicked(MouseEvent) mouseEntered(MouseEvent) mouseExited(MouseEvent) mousePressed(MouseEvent) mouseReseased(MouseEvent)

10

5

21/08/2020

Swing • Implementação completamente feita em Java

• Os componentes foram inteiramente programados em Java, e estão baseados no “Lightweight UI Framework” do JDK 1.1.

• Um rico conjunto de componentes alto nível.

• estrutura em árvore (tree view), list box, painéis com abas, etc. • Faz parte da Java Foundation Classes (JFC), oferecendo recursos para: acessibilidade, internacionalização, copy & paste, drag & drop, ...

• Gerenciadores de Layout (diagramadores) • Look & feel plugável • Componentes são freqüentemente chamados de lightweight.

• Projeto puro em Java, sem dependência de códigos nativos da plataforma.

11

AWT: Prós ...

AWT vs Swing:

• Velocidade: o uso de código nativo aumenta o desempenho do componente • Portabilidade: a maioria dos navegadores web e das shells gráficas dos SO suportam as classes AWT, podendo serem executados sem a necessidade de extensões ou plugins. • Sensação e Aparência: os componentes AWT refletem mais precisamente a sensação e o estilo visual do SO em que estão sendo executados.

Swing: Prós... • Portabilidade: implica em poucas limitações específicas da plataforma. • Comportamento: permite maior variedade já que não estão limitados pelos códigos nativos. • Suporte: o desenvolvimento em Swing é mais ativo. • Sensação e Aparência: permite desenhar os componentes GUI com a mesma aparência do SO. É mais fácil realizar mudanças globais para o seu Java programas que proporcionam maior acessibilidade.

12

6

21/08/2020

AWT: Contra ...

AWT vs Swing:

• Portabilidade: o uso de código nativo cria limitações, pois alguns componentes podem não funcionar completamente em outras plataformas

• Desenvolvimento: há um conjunto bem menor de componentes, onerando os programadores ao criar seus componentes baseados em componentes AWT. • Características: componentes AWT não suportam certas características como dicas (tool-tips) e acessibilidade.

Swing: Contra ... • Portabilidade: a maioria dos navegadores web não incluem suporte as classes Swing. • Desempenho: os componentes Swing são geralmente mais lentos. Dado serem puramente Java, os componentes Swing manipulam, eles mesmos, sua pintura ao invés de usar API´s nativas. • “Look and feel”: mesmo quando configurados para se parecerem com o SO em que estão, podem parecer diferentes aos seus homólogos nativos.

13

7
AWT e Swing (Slides)

Related documents

7 Pages • 1,011 Words • PDF • 642.5 KB

42 Pages • 2,070 Words • PDF • 475.4 KB

13 Pages • 2,531 Words • PDF • 119.8 KB

41 Pages • 2,195 Words • PDF • 946.6 KB

36 Pages • 1,604 Words • PDF • 870.8 KB

20 Pages • 1,337 Words • PDF • 484.2 KB

75 Pages • 7,702 Words • PDF • 5.4 MB

50 Pages • 279 Words • PDF • 5.2 MB

36 Pages • 3,123 Words • PDF • 378.6 KB

21 Pages • 957 Words • PDF • 525.6 KB

19 Pages • 429 Words • PDF • 567.2 KB

12 Pages • 1,727 Words • PDF • 1.5 MB