APLICAÇÕES DE LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS COMPONENTES GUI – PARTE I Prof....

Preview:

Citation preview

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

COMPONENTES GUI – PARTE I

Prof. Thiago Pereira Rique

thiagorique2011@gmail.com

http://thiagorique.wordpress.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

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.

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)

A NOVA INTERFACE NIMBUS DO JAVA

A NOVA INTERFACE NIMBUS DO JAVA

A NOVA INTERFACE NIMBUS DO JAVA

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

kandfeel/nimbus.html

LOOK AND FEEL PADRÃO METAL DO JAVA

Default look and feel - Metal

LOOK AND FEEL PADRÃO METAL DO JAVA

Default look and feel - Metal

ENTRADA/SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE

ENTRADA/SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE

Diálogos de entrada

Diálogos de mensagem

ENTRADA/SAÍDA BASEADA EM GUI SIMPLES COM JOPTIONPANE

Constantes de diálogo de mensagem JOptionPane

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.

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.

VISÃO GERAL DE COMPONENTES SWING

Swing versus AWT (Abstract Window Toolkit)

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

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

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

EXIBIÇÃO DE TEXTO E IMAGENS EM UMA JANELA

Saída do aplicativo

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);

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

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

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

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

Continua...

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

Continua...

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

Continua...

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

Continua...

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

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

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

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

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).

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

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

REFERÊNCIA

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