36
APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique [email protected] http://thiagorique.wordpress.com/

APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique [email protected]

Embed Size (px)

Citation preview

Page 1: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

COMPONENTES GUI – PARTE I

Prof. Thiago Pereira Rique

[email protected]

http://thiagorique.wordpress.com/

Page 2: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

AGENDA

Introdução A nova interface Nimbus do Java Look and feel padrão Metal do Java Entrada/saída baseada em GUI simples com

JOptionPane Visão geral de componentes Swing Exibição de texto e imagens em uma janela Campos de texto e uma introdução ao

tratamento de evento com classes aninhadas

Page 3: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

INTRODUÇÃO

Interface gráfica de usuário (Graphical User Interface – GUI) Aparência Comportamento

Componentes GUI (controles ou widgets (abreviação de window gadgets)) Objetos com os quais o usuário interage via

mouse, teclado ou outros mecanismos.

Page 4: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

A NOVA INTERFACE NIMBUS DO JAVA

Atualização 10 do Java SE 6 Há 3 modos de utilizar o Nimbus:

Configurá-lo como padrão para todos os aplicativos Java no computador

Configurá-lo como a interface no momento em que se carrega um aplicativo (linha de comando)

Configurá-lo como a interface diretamente no aplicativo (programaticamente)

Page 5: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

A NOVA INTERFACE NIMBUS DO JAVA

Page 6: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

A NOVA INTERFACE NIMBUS DO JAVA

Page 7: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

A NOVA INTERFACE NIMBUS DO JAVA

Outro exemplo: http://docs.oracle.com/javase/tutorial/uiswing/loo

kandfeel/nimbus.html

Page 8: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

LOOK AND FEEL PADRÃO METAL DO JAVA

Default look and feel - Metal

Page 9: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

LOOK AND FEEL PADRÃO METAL DO JAVA

Default look and feel - Metal

Page 10: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

ENTRADA/SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE

Page 11: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

ENTRADA/SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE

Diálogos de entrada

Diálogos de mensagem

Page 12: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

ENTRADA/SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE

Constantes de diálogo de mensagem JOptionPane

Page 13: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

VISÃO GERAL DE COMPONENTES SWING

JLabel Exibe texto não editável ou ícones.

JTextField Permite ao usuário inserir dados do teclado.

Também pode ser utilizado para exibir texto editável ou não editável.

JButton Desencadeia um evento quando o usuário clicar

nele com o mouse. JCheckBox

Especifica uma opção que pode ser ou não selecionada.

Page 14: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

VISÃO GERAL DE COMPONENTES SWING

JComboBox Fornece uma lista drop-down de itens a partir da

qual o usuário pode fazer uma seleção clicando em um item ou possivelmente digitando na caixa.

JPanel Fornece uma área em que os componentes

podem ser colocados e organizados. Também pode ser utilizado como uma área de desenho para imagens gráficas.

Page 15: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

VISÃO GERAL DE COMPONENTES SWING

Swing versus AWT (Abstract Window Toolkit)

Superclasses de componentes GUI leves (independentes de plataforma) do Swing

Page 16: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

Janelas Instâncias da classe JFrame ou subclasses de

JFrame. JFrame: subclasse indireta da classe

java.awt.Window. Para nossos exemplos:

Classe responsável pela construção da GUI (subclasse de JFrame).

Classe que cria e exibe a janela principal do aplicativo (main).

Rotulando componentes GUI JLabel

Page 17: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

Page 18: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

Page 19: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

Page 20: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

Saída do aplicativo

Page 21: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

Especificando o layout Gerenciadores de layout (FlowLayout)

Componentes da esquerda para a direita. Método setLayout herdado indiretamente da

classe Container Argumento: objeto de uma classe que implemente a

interface LayoutManager.

Criando e anexando label1 “Label com texto” para o construtor da classe

JLabel setToolTipText add(label1);

Page 22: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

Criando e anexando label2 Um ícone é especificado como um argumento Icon

para um construtor ou para o método setIcon do componente.

Icon Objeto de uma classe que implementa a interface Icon

(javax.swing). ImageIcon (javax.swing)

.gif, .png, .jpg (ou .jpeg) getClass().getResource(“Login_icon.png”)

Criando e anexando label3 setText, getText setIcon, getIcon setHorizontalTextPosition, setVerticalTextPosition

Page 23: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

Criando e exibindo uma janela LabelFrame Operação de fechamento padrão da janela

setDefaultCloseOperation JFrame.EXIT_ON_CLOSE

Page 24: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

As GUIs são baseadas em eventos Clicar um botão, digitar em um campo de texto,

etc. Handler de evento

Código que realiza uma tarefa em resposta a um evento

Tratamento de eventos Processo total de responder a eventos

Page 25: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Continua...

Page 26: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Continua...

Page 27: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Continua...

Page 28: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Continua...

Page 29: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Page 30: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Page 31: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Page 32: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Page 33: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Passos necessários para configurar o tratamento de evento de um componente GUI

1. Crie uma classe que represente o handler de evento.

2. Implemente uma interface apropriada (interface ouvinte de eventos) na classe do passo 1.

3. Indique que um objeto da classe dos passos 1 e 2 deve ser notificado quando o evento ocorrer (registrar handler de evento).

Page 34: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Utilizando uma classe aninhada para implementar um handler de evento Classes de primeiro nível Classes aninhadas (static ou não static)

Não static: classes internas (handlers de eventos) “Cada evento é representado por uma classe e

pode ser processado apenas pelo tipo de handler de evento apropriado”

Enter em um JTextField ActionEvent (java.awt.event) ActionListener (java.awt.event)

actionPerformed

Page 35: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

CAMPOS DE TEXTO E UMA INTRODUÇÃO AO TRATAMENTO DE EVENTO COM CLASSES ANINHADAS

Registrando o handler de evento para cada campo de texto textField.addActionListener(handler);

Detalhes do método actionPerformed da classe TextFieldHandler Origem do evento Método getSource

if (event.getSource() == textField1) Método getActionCommand

Page 36: APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof. Thiago Pereira Rique thiagorique2011@gmail.com

REFERÊNCIA

DEITEL, H.M; Java Como Programar. Ed. Pearson, 8ª ed, 2010.