• Nenhum resultado encontrado

Linguagem de Programação Java II Aula 2. Prof. Me. Alexandre Rômolo Moreira Feitosa

N/A
N/A
Protected

Academic year: 2021

Share "Linguagem de Programação Java II Aula 2. Prof. Me. Alexandre Rômolo Moreira Feitosa"

Copied!
228
0
0

Texto

(1)

Linguagem de Programa

Linguagem de Programa

ç

ç

ão Java II

ão Java II

Aula 2

Aula 2

Prof. Me. Alexandre Rômolo Moreira Feitosa

Prof. Me. Alexandre Rômolo Moreira Feitosa

(2)

O Instrutor

O Instrutor

„

„

Prof. Me. Alexandre Rômolo Moreira Feitosa

Prof. Me. Alexandre Rômolo Moreira Feitosa

„

„

Bacharel em Ciência da Computa

Bacharel em Ciência da Computa

ç

ç

ão

ão

pela Universidade Estadual de Londrina (1998).

pela Universidade Estadual de Londrina (1998).

„

„

Especialista em Desenvolvimento de

Especialista em Desenvolvimento de

Software para Internet pela UNOPAR (2003).

Software para Internet pela UNOPAR (2003).

„

„

Mestre em Inform

Mestre em Inform

á

á

tica pela UFPR (2006).

tica pela UFPR (2006).

„

„

Fundador e Diretor T

Fundador e Diretor T

é

é

cnico da

cnico da

Inflammatio

Inflammatio

Entretenimento, empresa

Entretenimento, empresa

desenvolvedora de Softwares de Entretenimento e solu

desenvolvedora de Softwares de Entretenimento e solu

ç

ç

ões WEB, de

ões WEB, de

1996 a 2004.

1996 a 2004.

„

„

Foi Analista de Sistemas na Sercomtel Telecomunica

Foi Analista de Sistemas na Sercomtel Telecomunica

ç

ç

ões de 2005 a

ões de 2005 a

2006, trabalhando na parte de engenharia com a tecnologia Java.

2006, trabalhando na parte de engenharia com a tecnologia Java.

„

„

Professor de Ensino Superior desde 2002. Atualmente

Professor de Ensino Superior desde 2002. Atualmente

é

é

professor

professor

efetivo da UTFPR, Campus Corn

efetivo da UTFPR, Campus Corn

é

é

lio Proc

lio Proc

ó

ó

pio.

pio.

„

„

Aluno de Doutorado da Universidade Federal do Paran

Aluno de Doutorado da Universidade Federal do Paran

á

á

.

.

e

(3)

Roteiro da Disciplina

Roteiro da Disciplina

„

„

Ferramentas de Desenvolvimento

Ferramentas de Desenvolvimento

„

„

Orienta

Orienta

ç

ç

ão a Objetos

ão a Objetos

„

„

Classes Abstratas

Classes Abstratas

„

„

Interface

Interface

„

„

Classe Interna

Classe Interna

„

„

Manipula

Manipula

ç

ç

ão de Datas

ão de Datas

„

„

Exce

Exce

ç

ç

ões

ões

„

„

Interface Grá

Interface Gr

áfica de Usu

fica de Usuá

ário com Swing

rio com Swing

„

„

Componentes B

Componentes B

á

á

sicos

sicos

„

„

Gerenciadores de Layouts

Gerenciadores de Layouts

„

„

Tratamento de Eventos

Tratamento de Eventos

„

„

Fluxo de dados (

Fluxo de dados (

streams

streams

)

)

„

(4)

Informes da Disciplina

Informes da Disciplina

„

„

Datas da Disciplina

Datas da Disciplina

08/05, 15/05 e 22/05

08/05, 15/05 e 22/05

„

„

Material da disciplina dispon

Material da disciplina dispon

í

í

vel em

vel em

http://moodle.cp.utfpr.edu.br

http://moodle.cp.utfpr.edu.br

na disciplina Linguagem de

na disciplina Linguagem de

Programa

Programa

ç

ç

ão Java II

ão Java II

„

„

Forma de avalia

Forma de avalia

ç

ç

ão

ão

Entrega dos exerc

Entrega dos exerc

í

í

cios passados nos slides at

cios passados nos slides at

é

é

30/06/10

30/06/10

na ferramenta

na ferramenta

moodle

moodle

.

.

„

„

Ser

Ser

á

á

entregue ao final da disciplina um CD

entregue ao final da disciplina um CD

-

-

ROM com todo o

ROM com todo o

material utilizado, e com material extra de estudo

material utilizado, e com material extra de estudo

recomendado.

(5)

Roteiro desta Aula

Roteiro desta Aula

„

„

Tecnologias para Interface Gr

Tecnologias para Interface Gr

á

á

fica

fica

„

„

AWT, Swing, Java 2D, JavaFX

AWT, Swing, Java 2D,

JavaFX, e Swing Application

, e Swing Application

Framework.

Framework.

„

„

Elementos t

Elementos t

í

í

picos de uma Interface Gr

picos de uma Interface Gr

á

á

fica

fica

„

„

Componentes b

Componentes b

á

á

sicos de GUI

sicos de GUI

Parte I

Parte I

„

„

Gerenciadores de Layout

Gerenciadores de Layout

„

„

Tratamento de Eventos

Tratamento de Eventos

„

„

Classes Adaptadoras

Classes Adaptadoras

„

„

Classes Internas

Classes Internas

„

„

Componentes B

Componentes B

á

á

sicos de GUI

sicos de GUI

Parte II

Parte II

„

(6)

Interfaces Gr

(7)

Mapa das Tecnologias

Mapa das Tecnologias

„

(8)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Uma interface rica e eficiente é

Uma interface rica e eficiente

é

fundamental para o

fundamental para o

desenvolvimento de aplica

desenvolvimento de aplicaç

ções que tenham grande

ões que tenham grande

aceita

aceitaç

ção no mercado.

ão no mercado.

„

„

Java fornece vá

Java fornece v

árias tecnologias para desenvolvimento de

rias tecnologias para desenvolvimento de

interfaces gr

interfaces gr

á

á

ficas de usu

ficas de usu

á

á

rio (GUI) de alta qualidade.

rio (GUI) de alta qualidade.

Os principais pacotes são:

Os principais pacotes são:

„

„

AWT

AWT

java

java

.

.

awt

awt

„

„

SWING

SWING

javax.swing

javax

.swing

„

„

Java 2D

Java 2D

conjunto de v

conjunto de v

á

á

rios pacotes

rios pacotes

Al

Al

é

é

m de novas tecnologias propostas que ainda estão

m de novas tecnologias propostas que ainda estão

em amadurecimento, como o

em amadurecimento, como o

JavaFX

JavaFX

e o

e o

Swing

Swing

Application Framework (JSR 296)

(9)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

O

O

JavaFX

JavaFX

é

é

a solu

a solu

ç

ç

ão da plataforma Java

ão da plataforma Java

para a cria

para a cria

ç

ç

ão de

ão de

aplica

aplica

ç

ç

ões gr

ões gr

á

á

ficas ricas para desktop, internet, e para

ficas ricas para desktop, internet, e para

dispositivos m

dispositivos m

ó

ó

veis

veis

.

.

„

„

O objetivo

O objetivo

é

é

que a

que a

mesma aplica

mesma aplica

ç

ç

ão (interface) seja

ão (interface) seja

adapt

adapt

á

á

vel automaticamente

vel automaticamente

para cada um destes destinos.

para cada um destes destinos.

„

„

Ela

Ela

concorre diretamente com o Flash

concorre diretamente com o Flash

da Adobe,

da Adobe,

e o

e o

Silverlight

Silverlight

da Microsoft.

da Microsoft.

„

„

Para

Para

desenvolver aplica

desenvolver aplica

ç

ç

ões em

ões em

JavaFX

JavaFX

é

é

necess

necess

á

á

rio instalar o

rio instalar o

JavaFX

JavaFX

SDK

SDK

al

al

é

é

m do Java SDK SE. Maiores informa

m do Java SDK SE. Maiores informa

ç

ç

ões no

ões no

site

(10)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Para utilizar o

Para utilizar o

NetBeans

NetBeans

como editor

como editor

JavaFX

JavaFX

é

é

preciso baixar

preciso baixar

uma versão espec

uma versão espec

í

í

fica dele,

fica dele,

ou instalar posteriormente alguns

ou instalar posteriormente alguns

plugins

(11)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Comparativo das solu

Comparativo das solu

ç

ç

ões:

ões:

„

„

Ainda carece de um maior

Ainda carece de um maior

amadurecimento da tecnologia (muito

amadurecimento da tecnologia (muito

recente).

recente).

„

„

Rumos incertos do futuro da tecnologia

Rumos incertos do futuro da tecnologia

Java ap

Java ap

ó

ó

s a aquisi

s a aquisi

ç

ç

ão da Sun pela Oracle.

ão da Sun pela Oracle.

„

„

Integrado com a plataforma

Integrado com a plataforma

Java. Permite reaproveitamento

Java. Permite reaproveitamento

de classes e bibliotecas feitas.

de classes e bibliotecas feitas.

„

„

Grande uso do Java em

Grande uso do Java em

dispositivos m

dispositivos m

ó

ó

veis.

veis.

JavaFX

JavaFX

„

„

Solu

Solu

ç

ç

ão propriet

ão propriet

á

á

ria.

ria.

„

„

Baixa portabilidade para sistemas

Baixa portabilidade para sistemas

operacionais diferentes do Windows.

operacionais diferentes do Windows.

„

„

Intregrado

Intregrado

com a plataforma

com a plataforma

.Net. Aceita diversas linguagens

.Net. Aceita diversas linguagens

para programa

para programa

ç

ç

ão.

ão.

„

„

Alta compacta

Alta compacta

ç

ç

ão de v

ão de v

í

í

deos de

deos de

alta qualidade.

alta qualidade.

Silverlight

Silverlight

„

„

Dificuldade na integra

Dificuldade na integra

ç

ç

ão com banco de

ão com banco de

dados.

dados.

„

„

Linguagem de programa

Linguagem de programa

ç

ç

ão interna

ão interna

espec

espec

í

í

fica (

fica (

ActionScript

ActionScript

).

).

„

„

Baixa compacta

Baixa compacta

ç

ç

ão em v

ão em v

í

í

deos de alta

deos de alta

qualidade.

qualidade.

„

„

Baixo uso para dispositivos m

Baixo uso para dispositivos m

ó

ó

veis.

veis.

„

„

Instalado em 98% dos

Instalado em 98% dos

computadores com acesso a

computadores com acesso a

internet.

internet.

„

„

Solu

Solu

ç

ç

ão com 10 anos de

ão com 10 anos de

mercado.

mercado.

„

„

Editor de constru

Editor de constru

ç

ç

ão visual

ão visual

bem completo.

bem completo.

Flash

Flash

Desvantagens

Desvantagens

Vantagens

Vantagens

Solu

(12)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

AWT

AWT

-

-

Abstract

Abstract

Window

Window

Toolkit

Toolkit

„

„

Fornece suporte a interface gr

Fornece suporte a interface gr

á

á

fica de usu

fica de usu

á

á

rio (GUI),

rio (GUI),

tratamento de eventos, gerenciadores de layout.

tratamento de eventos, gerenciadores de layout.

„

„

Foi o primeiro pacote gr

Foi o primeiro pacote gr

á

á

fico criado no Java e

fico criado no Java e

é

é

a base das

a base das

interfaces gr

interfaces gr

á

á

ficas.

ficas.

„

„

Est

Est

á

á

diretamente ligada as fun

diretamente ligada as fun

ç

ç

ões implementadas nos

ões implementadas nos

sistema operacionais, a partir da classe

sistema operacionais, a partir da classe

java

java

.

.

awt

awt

.

.

peer

peer

.

.

„

„

O que faz com que os componentes deste pacote tenham

O que faz com que os componentes deste pacote tenham

comportamentos e aparências diferentes, de acordo com o

comportamentos e aparências diferentes, de acordo com o

sistema operacional onde estão sendo mostrados.

(13)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

SWING

SWING

„

„

Pacote incorporado ao Java a partir da versão 1.2 que

Pacote incorporado ao Java a partir da versão 1.2 que

é

é

uma extensão do pacote AWT, incorporando novas

uma extensão do pacote AWT, incorporando novas

funcionalidades e componentes mais avan

funcionalidades e componentes mais avan

ç

ç

ados, como:

ados, como:

„

„

Aparência e comportamento plug

Aparência e comportamento plug

á

á

veis (

veis (

Look

Look

&

&

Feel

Feel

)

)

„

„

Suporte a teclas de atalho (

Suporte a teclas de atalho (

Mnemônicas

Mnemônicas

)

)

„

„

Exibi

Exibi

ç

ç

ão de Dicas de Componentes (

ão de Dicas de Componentes (

HINT

HINT

ou

ou

TIPS

TIPS

)

)

„

„

Suporte a tecnologias de

Suporte a tecnologias de

aux

aux

í

í

lio a deficientes f

lio a deficientes f

í

í

sicos

sicos

.

.

„

„

Suporte a caracter

Suporte a caracter

í

í

stica de Arrastar e Soltar objetos

stica de Arrastar e Soltar objetos

(

(

Drag&Drop

Drag&Drop

).

).

„

„

Suporte ao

Suporte ao

Java 2D

Java 2D

, API avan

, API avan

ç

ç

ada para manipula

ada para manipula

ç

ç

ão de

ão de

gr

gr

á

á

ficos e imagens 2D.

ficos e imagens 2D.

„

„

Suporte para

Suporte para

localiza

localiza

ç

ç

ão

ão

da interface com o usu

da interface com o usu

á

á

rio. Para

rio. Para

adapt

(14)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

SWING

SWING

„

„

O pacote Swing

O pacote Swing

possui todos os componentes gr

possui todos os componentes gr

á

á

ficos do

ficos do

AWT

AWT

(Button,

(Button,

TextField

TextField

,

,

Label

Label

, etc..), s

, etc..), s

ó

ó

que suportando

que suportando

estas novas funcionalidades.

estas novas funcionalidades.

„

„

O Swing possui alguns

O Swing possui alguns

componentes avan

componentes avan

ç

ç

ados de

ados de

interfaces exclusivos

interfaces exclusivos

e que não são suportados pelo AWT.

e que não são suportados pelo AWT.

(

(

JSlider

JSlider

,

,

JTable

JTable

,

,

JTree

JTree

, etc..)

, etc..)

„

„

O

O

nome da classe da maioria dos componentes do Swing

nome da classe da maioria dos componentes do Swing

come

come

ç

ç

a com J

a com J

. (

. (

JButton

JButton

,

,

JTextField

JTextField

,

,

JLabel

JLabel

, etc..)

, etc..)

„

„

A maioria dos seus

A maioria dos seus

componentes são constru

componentes são constru

í

í

dos 100%

dos 100%

em Java

em Java

. O que torna a interface port

. O que torna a interface port

á

á

vel em termos de

vel em termos de

aparência e comportamento. Ela poder

aparência e comportamento. Ela poder

á

á

ser a mesma em

ser a mesma em

todos os sistemas suportados pelo JSE.

(15)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Exemplos de Interfaces Gr

Exemplos de Interfaces Gr

á

á

ficas em Java

ficas em Java

„

„

A p

A p

á

á

gina a seguir contem exemplos de

gina a seguir contem exemplos de

Applets

Applets

que

que

mostram as principais tecnologias gr

mostram as principais tecnologias gr

á

á

ficas da versão J2SE

ficas da versão J2SE

5.0. Interpretadas no Java

5.0. Interpretadas no Java

Plug

Plug

-

-

in

in

.

.

http://java.sun.com/products/plugin/1.5.0/demos/applets.html

http://java.sun.com/products/plugin/1.5.0/demos/applets.html

„

„

Podemos verificar todo o potencial e diversidade de uso

Podemos verificar todo o potencial e diversidade de uso

dos componentes do Swing acessando o exemplo

dos componentes do Swing acessando o exemplo

SwingSet2 Demo

SwingSet2 Demo

. Preparado especialmente pela equipe da

. Preparado especialmente pela equipe da

Sun e pela Netscape para este prop

(16)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

(17)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Exemplos de Interfaces Gr

Exemplos de Interfaces Gr

á

á

ficas em Java

ficas em Java

„

„

Outra exemplo fundamental é

Outra exemplo fundamental

é

o Java2D Demo

o

Java2D Demo, que

, que

mostra todas as possibilidades da API Java2D para

mostra todas as possibilidades da API Java2D para

manipula

manipulaç

ção de gr

ão de grá

áficos 2D. Fun

ficos 2D. Fun

ções estas que são

ç

ões estas que são

suportadas pelos componentes do Swing.

(18)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

(19)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JFC

JFC

Java

Java

Foundation

Foundation

Classes

Classes

„

„

É

É

um grande conjunto de classes que fazem parte da

um grande conjunto de classes que fazem parte da

plataforma Java 2 Standard

plataforma Java 2 Standard

Edition

Edition

é

é

que

que

suportam a

suportam a

constru

constru

ç

ç

ão de interfaces gr

ão de interfaces gr

á

á

ficas de usu

ficas de usu

á

á

rio, ricas e

rio, ricas e

comuns aos principais sistemas operacionais

comuns aos principais sistemas operacionais

(Windows,

(Windows,

MacOS

MacOS

, Linux, etc..).

, Linux, etc..).

„

„

Fornecem mecanismos para auxiliar o acesso de

Fornecem mecanismos para auxiliar o acesso de

pessoas com deficiência f

pessoas com deficiência f

ísica, a localiza

í

sica, a localiza

ção da

ç

ão da

interface, e o uso da API Java 2D.

interface, e o uso da API Java 2D.

„

„

O pacote AWT, SWING e o Java 2D fazem parte do

O pacote AWT, SWING e o Java 2D fazem parte do

JFC.

(20)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Elementos da Interface Java

Elementos da Interface Java

„

„

Container

Container

:

:

É

É

uma objeto que acomoda v

uma objeto que acomoda v

á

á

rios outros

rios outros

objetos de interface, que serão mostrados dentro dele.

objetos de interface, que serão mostrados dentro dele.

(

(

JApplet

JApplet

,

,

JFrame

JFrame

,

,

JWindow

JWindow

,

,

JPanel

JPanel

, etc..)

, etc..)

„

„

Controle (

Controle (

Component

Component

)

)

:

:

É

É

um objeto visual de interface

um objeto visual de interface

que poder

que poder

á

á

ser utilizado para intera

ser utilizado para intera

ç

ç

ão direta com o

ão direta com o

usu

usu

á

á

rio. (

rio. (

JButton

JButton

,

,

JTextField

JTextField

,

,

JLabel

JLabel

,

,

JMenu

JMenu

, etc..)

, etc..)

„

„

LayoutManager

LayoutManager

(Gerenciador de Layout)

(Gerenciador de Layout)

:

:

É

É

um objeto

um objeto

respons

respons

á

á

vel por definir a organiza

vel por definir a organiza

ç

ç

ão dos objetos de

ão dos objetos de

interface dentro de um objeto Container.

interface dentro de um objeto Container.

„

„

Listener

Listener

(Ouvidor de Eventos)

(Ouvidor de Eventos)

.

.

É

É

um objeto respons

um objeto respons

á

á

vel

vel

por tratar um evento disparado pelo usu

por tratar um evento disparado pelo usu

á

á

rio a partir da

rio a partir da

intera

(21)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Etapas para constru

Etapas para constru

ç

ç

ão de Interfaces Gr

ão de Interfaces Gr

á

á

ficas

ficas

1.

1.

Criaç

Cria

ção do objeto Container.

ão do objeto Container.

2.

2.

Cria

Cria

ç

ç

ão do objeto gerenciador do Layout

ão do objeto gerenciador do Layout

3.

3.

Associa

Associa

ç

ç

ão (Registro) do objeto Gerenciador de

ão (Registro) do objeto Gerenciador de

Layout com o objeto Container que ele gerenciar

Layout com o objeto Container que ele gerenciar

á

á

.

.

4.

4.

Criaç

Cria

ção dos objetos

ão dos objetos Component

Component

para montagem da

para montagem da

interface.

interface.

5.

5.

Criaç

Cria

ção dos objetos Ouvidores de Eventos.

ão dos objetos Ouvidores de Eventos.

6.

6.

Associa

Associa

ção (Registro) dos objetos Ouvidores de

ç

ão (Registro) dos objetos Ouvidores de

Eventos com os respectivos objetos

Eventos com os respectivos objetos Component

Component.

.

7.

7.

Adi

Adi

ção dos objetos

ç

ão dos objetos Component

Component

ao objeto Container.

ao objeto Container.

8.

(22)

Componentes B

Componentes B

á

á

sicos

sicos

de GUI

(23)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Hierarquia Fundamental de Classes

Hierarquia Fundamental de Classes

java.awt.Component

java.awt.Container

javax.swing.JComponent

java.lang.Object

Repare que um

Container também é

um Component

(24)

java.awt.TextField

java.awt.TextArea

java.awt.ScrollBar

java.awt.TextComponent

java.awt.List

java.awt.Label

java.awt.Container

java.awt.Choice

java.awt.CheckBox

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Component

Component

java

java

.

.

awt

awt

.

.

Component

Component

„

„

É

É

a superclasse dos componentes visuais de interface,

a superclasse dos componentes visuais de interface,

que são os controles e os objetos Container. Tanto do

que são os controles e os objetos Container. Tanto do

pacote AWT quanto do pacote SWING.

pacote AWT quanto do pacote SWING.

java.awt.Component

java.awt.Canvas

java.awt.Button

(25)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Component

Component

java

java

.

.

awt

awt

.

.

Component

Component

„

„

Alguns m

Alguns m

étodos:

é

todos:

„

„

Dimension

Dimension

getSize

getSize

()

()

: retorna um objeto

: retorna um objeto

Dimension

Dimension

com o tamanho (altura e

com o tamanho (altura e

largura) em pixel do componente.

largura) em pixel do componente.

„

„

void

void

setSize

setSize

(int largura, int altura)

(int largura, int altura)

: Define a largura e altura do componente.

: Define a largura e altura do componente.

„

„

void

void

setLocation

setLocation

(int x,

(int x,

inty

inty

)

)

: Defina a posi

: Defina a posi

ç

ç

ão x e y do componente, a

ão x e y do componente, a

posi

posi

ç

ç

ão

ão

é

é

relativa ao container onde o componente est

relativa ao container onde o componente est

á

á

inserido.

inserido.

„

„

setBounds

setBounds

(int x, int y, int largura, int altura)

(int x, int y, int largura, int altura)

: Define a largura, altura

: Define a largura, altura

posi

posi

ç

ç

ão x e posi

ão x e posi

ç

ç

ão y do componente. A posi

ão y do componente. A posi

ç

ç

ão

ão

é

é

relativa ao container

relativa ao container

onde est

onde est

á

á

localizado o componente.

localizado o componente.

„

„

void

void

setFont

setFont

(

(

Font

Font

c)

c)

: Define a fonte usada para desenhar os textos do

: Define a fonte usada para desenhar os textos do

componente.

componente.

„

„

void

void

setBackground

setBackground

(

(

Color

Color

c)

c)

: Define a cor de fundo do componente.

: Define a cor de fundo do componente.

„

„

void

void

setForeground

setForeground

(

(

Color

Color

c)

c)

: Define a cor do primeiro plano do componente.

: Define a cor do primeiro plano do componente.

„

„

void

void

setVisible

setVisible

(

(

boolean

boolean

b)

b)

: Define se o componente est

: Define se o componente est

á

á

vis

vis

í

í

vel ou não.

vel ou não.

„

„

void

void

setEnabled

setEnabled

(

(

boolean

boolean

b)

b)

: Define se o componente est

: Define se o componente est

á

á

habilitado ou não.

habilitado ou não.

Um componente habilitado gera eventos.

(26)

DragWindow

javax.swing.JWindow

javax.swing.JComponet

EditorContainer

CellRendererPane

BasicSplitPaneDivider

java.awt.Dialog

java.awt.Window

java.awt.ScrollPane

java.awt.Panel

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Container

Container

java

java

.

.

awt

awt

.Container

.Container

„

„

Um Container é

Um Container

é

um componente sobre o qual os

um componente sobre o qual os

componentes visuais de controle são posicionados.

componentes visuais de controle são posicionados.

Quem define como os controles serão posicionados

Quem define como os controles serão posicionados

são os gerenciadores de Layout (Layout Manager).

são os gerenciadores de Layout (Layout Manager).

java.awt.Container

java.awt.Frame

java.applet.Applet

(27)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

Container

Container

java

java

.

.

awt

awt

.Container

.Container

„

„

Alguns m

Alguns m

é

é

todos:

todos:

„

„

void

void

setLayout

setLayout

(

(

LayoutManager

LayoutManager

m)

m)

: Define o gerenciador de layout

: Define o gerenciador de layout

a ser utilizado pelo container para posicionar os componentes.

a ser utilizado pelo container para posicionar os componentes.

„

„

void

void

add

add

(

(

Component

Component

c)

c)

: Adiciona um componente ao container. A

: Adiciona um componente ao container. A

posi

posi

ç

ç

ão deste componente depende do gerenciador de layout

ão deste componente depende do gerenciador de layout

registrado ao container.

registrado ao container.

„

„

void

void

remove(

remove(

Component

Component

c)

c)

: Remove este componente do

: Remove este componente do

container.

container.

„

„

void

void

removeAll

removeAll

()

()

: Remove todos os componentes do Container.

: Remove todos os componentes do Container.

„

„

void

void

paint

paint

(

(

Graphics

Graphics

g)

g)

: M

: M

é

é

todo invocado automaticamente toda vez

todo invocado automaticamente toda vez

que o container necessita ser redesenhado. Usualmente se redefin

que o container necessita ser redesenhado. Usualmente se redefin

e

e

este m

este m

é

é

todo para desenhar a interface gr

todo para desenhar a interface gr

á

á

fica do container (Exceto

fica do container (Exceto

os controles que são desenhados pelo gerenciador de Layout).

os controles que são desenhados pelo gerenciador de Layout).

„

„

invalidate

invalidate

()

()

: Marca o container como inv

: Marca o container como inv

á

á

lido. Caso o Container

lido. Caso o Container

esteja associado a um

esteja associado a um

LayoutManager

LayoutManager

este ir

este ir

á

á

verificar se os

verificar se os

objetos deverão ser reposicionados.

(28)

javax.swing.JTable

javax.swing.JPanel

javax.swing.JOptionPane

javax.swing.JList

javax.swing.JLabel

javax.swing.JComboBox

javax.swing.AbstractButton

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JComponent

JComponent

javax

javax

.swing.

.swing.

JComponent

JComponent

„

„

Superclasse de todos dos componentes visuais e da

Superclasse de todos dos componentes visuais e da

maioria das classes Container do pacote Swing.

maioria das classes Container do pacote Swing.

Implemente novas funcionalidades que a classe

Implemente novas funcionalidades que a classe

java

java.

.awt

awt.

.Component

Component

não suporta.

não suporta.

javax.swing.JComponent

...

...

(29)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JComponent

JComponent

javax

javax

.swing.

.swing.

JComponent

JComponent

„

„

Alguns m

Alguns m

étodos:

é

todos:

„

„

void

void

setBorder

setBorder

(

(

Border

Border

b)

b)

: Especifica a borda do componente.

: Especifica a borda do componente.

„

„

void

void

setToolTipText

setToolTipText

(String texto)

(String texto)

: Especifica o texto de ajuda que

: Especifica o texto de ajuda que

aparecer

aparecer

á

á

quando o mouse permanecer parado sobre o

quando o mouse permanecer parado sobre o

componente (HINT ou TIP)

componente (HINT ou TIP)

„

„

void

void

setMinimunSize

setMinimunSize

(

(

Dimension

Dimension

m)

m)

: Especifica a dimensão m

: Especifica a dimensão m

í

í

nima

nima

do componente. O parâmetro do tipo

do componente. O parâmetro do tipo

Dimension

Dimension

é

é

um objeto (new

um objeto (new

Dimension

Dimension

(int largura, int altura).

(int largura, int altura).

„

„

void

void

setMaximunSize

setMaximunSize

(

(

Dimension

Dimension

m)

m)

: Especifica a dimensão m

: Especifica a dimensão m

á

á

xima

xima

do componente. O parâmetro do tipo

do componente. O parâmetro do tipo

Dimension

Dimension

é

é

um objeto (new

um objeto (new

Dimension

Dimension

(int largura, int altura).

(int largura, int altura).

„

„

int

int

getX

getX

()

()

: retorna a posi

: retorna a posi

ç

ç

ão X do componente referente ao

ão X do componente referente ao

Container onde ele se encontra.

Container onde ele se encontra.

„

„

int

int

getY

getY

()

()

: retorna a posi

: retorna a posi

ç

ç

ão Y do componente referente ao

ão Y do componente referente ao

Container onde ele se encontra.

(30)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JWindow

JWindow

javax

javax

.swing.

.swing.

JWindow

JWindow

„

„

Cria uma

Cria uma

janela sem suporte a menu suspenso

janela sem suporte a menu suspenso

(menu

(menu

pull

pull

-down

-

down), sem bordas e sem barra de t

), sem bordas e sem barra de tí

ítulo. Classe

tulo. Classe

filha da

filha da

java

java

.

.

awt.

awt

.Window

Window. Raramente

. Raramente é

é

utilizada.

utilizada.

„

„

Alguns construtores:

Alguns construtores:

„

„

JWindow

JWindow

()

()

: Cria uma janela sem nenhum pai.

: Cria uma janela sem nenhum pai.

„

„

JWindow

JWindow

(Frame pai)

(Frame pai)

: Cria uma janela com um pai. A janela

: Cria uma janela com um pai. A janela

s

(31)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JWindow

JWindow

javax

javax

.swing.

.swing.

JWindow

JWindow

„

„

Alguns m

Alguns m

étodos:

é

todos:

„

„

Container

Container

getContentPane

getContentPane

()

()

: retorna um objeto do tipo

: retorna um objeto do tipo

container que

container que

é

é

usado para adicionar os controles dentre da

usado para adicionar os controles dentre da

janela.

janela.

„

„

addWindowListener

addWindowListener

(

(

WindowListener

WindowListener

l)

l)

: registra um objeto

: registra um objeto

ouvidor para tratar os eventos de janela.

ouvidor para tratar os eventos de janela.

„

„

setAlwaysOnTop

setAlwaysOnTop

(

(

boolean

boolean

b)

b)

: define se esta janela estar

: define se esta janela estar

á

á

sempre em primeiro plano ou não.

sempre em primeiro plano ou não.

„

„

boolean

boolean

isActive

isActive

()

()

: retorna

: retorna

true

true

se a janela est

se a janela est

á

á

ativa.

ativa.

„

„

boolean

boolean

isFocused

isFocused

()

()

: retorna

: retorna

true

true

se a janela

se a janela

é

é

o

o

componente que est

(32)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

ExemploJWindow

ExemploJWindow

package br.com.

package br.com.

alexandrefeitosa

alexandrefeitosa

.

.

cursojse

cursojse

.exemplos.

.exemplos.

jwindow

jwindow

;

;

import

import

javax

javax

.swing.

.swing.

JWindow

JWindow

;

;

import

import

javax

javax

.swing.

.swing.

JLabel

JLabel

;

;

public

public

class

class

ExemploJWindow

ExemploJWindow

extends

extends

JWindow

JWindow

{

{

ExemploJWindow

ExemploJWindow

(){

(){

JLabel

JLabel

label

label

= new

= new

JLabel

JLabel

(" Exemplo de Janela

(" Exemplo de Janela

JWindow

JWindow

");

");

getContentPane

getContentPane

().

().

add

add

(

(

label

label

);

);

setSize

setSize

(200,200);

(200,200);

setLocation

setLocation

(200,200);

(200,200);

setAlwaysOnTop

setAlwaysOnTop

(

(

true

true

);

);

setVisible

setVisible

(

(

true

true

);

);

}

}

public

public

static

static

void

void

main

main

(String[]

(String[]

args

args

) {

) {

ExemploJWindow

ExemploJWindow

meu = new

meu = new

ExemploJWindow

ExemploJWindow

();

();

}

}

}

}

Adiciona um JLabel a Janela. Técnica de

Encadeamento de Operadores.

(33)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JFrame

JFrame

javax

javax

.swing.

.swing.

JFrame

JFrame

„

„

Cria uma

Cria uma

janela com suporte a menu suspenso

janela com suporte a menu suspenso

(opcional),

(opcional),

com bordas e com barra de t

com bordas e com barra de t

í

í

tulo

tulo

. Classe

. Classe

filha da

filha da

java

java

.

.

awt.Frame. Container Swing mais

awt

.Frame. Container Swing mais

utilizado.

utilizado.

„

„

Alguns construtores:

Alguns construtores:

„

„

JFrame

JFrame

()

()

: Cria um novo frame sem nenhum t

: Cria um novo frame sem nenhum t

í

í

tulo para a

tulo para a

janela.

janela.

„

„

JFrame

JFrame

(String nome)

(String nome)

: Cria um novo frame com o t

: Cria um novo frame com o t

í

í

tulo

tulo

especificado para a janela.

(34)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JFrame

JFrame

javax

javax

.swing.

.swing.

JFrame

JFrame

„

„

Alguns m

Alguns m

étodos:

é

todos:

„

„

setLayout

setLayout

(

(

LayoutManager

LayoutManager

l)

l)

: Registra o objeto gerenciador

: Registra o objeto gerenciador

de Layout que ser

de Layout que ser

á

á

respons

respons

á

á

vel por organizar a disposi

vel por organizar a disposi

ç

ç

ão

ão

dos controles.

dos controles.

„

„

setJMenuBar

setJMenuBar

(

(

JMenuBar

JMenuBar

menu)

menu)

: Define o objeto

: Define o objeto

JMenuBar

JMenuBar

que ser

que ser

á

á

o menu suspenso do Frame.

o menu suspenso do Frame.

„

„

setTitle

setTitle

(String titulo)

(String titulo)

: Defina o texto da barra de t

: Defina o texto da barra de t

í

í

tulo do

tulo do

Frame.

Frame.

„

„

setResizable

setResizable

(

(

boolean

boolean

b)

b)

: Define se o Frame poder

: Define se o Frame poder

á

á

ser

ser

redimensionado pelo usu

redimensionado pelo usu

á

á

rio. Caso seja configurado como

rio. Caso seja configurado como

false

(35)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JFrame

JFrame

javax

javax

.swing.

.swing.

JFrame

JFrame

„

„

Alguns m

Alguns m

étodos:

é

todos:

„

„

setDefaultCloseOperation

setDefaultCloseOperation

(int o)

(int o)

: Define qual a opera

: Define qual a opera

ç

ç

ão padrão a

ão padrão a

ser realizado pelo Frame caso o usu

ser realizado pelo Frame caso o usu

á

á

rio clique no botão fechar. O

rio clique no botão fechar. O

parâmetro passado

parâmetro passado

é

é

uma das seguintes constantes:

uma das seguintes constantes:

„

„

DO_NOTHING_ON_CLOSE

DO_NOTHING_ON_CLOSE

:

:

Não

Não

realiza

realiza

nenhuma

nenhuma

opera

opera

ç

ç

ão

ão

.

.

Deixa

Deixa

que

que

o

o

WindowListener

WindowListener

registra

registra

proceda

proceda

com o

com o

fechamento

fechamento

da

da

janela

janela

.

.

„

„

HIDE_ON_CLOSE

HIDE_ON_CLOSE

:

:

Automaticamente

Automaticamente

oculta

oculta

o frame e

o frame e

inova

inova

qualquer

qualquer

WindowListener

WindowListener

registrado

registrado

.

.

„

„

DISPOSE_ON_CLOSE

DISPOSE_ON_CLOSE

:

:

Automaticamente

Automaticamente

oculta

oculta

e

e

libera

libera

da

da

mem

mem

ó

ó

ria

ria

o

o

Frame.

Frame.

Depois

Depois

inova

inova

qualquer

qualquer

WindowListener

WindowListener

registrado

registrado

pelo

pelo

frame.

frame.

„

„

EXIT_ON_CLOSE

EXIT_ON_CLOSE

:

:

Sai

Sai

da

da

aplica

aplica

ç

ç

ão

ão

usanto

usanto

o

o

m

m

é

é

todo

todo

System.exit

System.exit

.

.

Est

Est

á

á

op

op

ç

ç

ão

ão

s

s

ó

ó

pode

pode

ser

ser

usado

usado

em

em

programas

programas

Java Application.

Java Application.

Todos estes parâmetros são constantes

Todos estes parâmetros são constantes

static

static

que

que

podem ser

podem ser

acessadas atrav

acessadas atrav

é

é

s do nome da Classe

s do nome da Classe

JFrame

JFrame

. O uso deste m

. O uso deste m

é

é

todo

todo

é

é

mais pr

mais pr

á

á

tico do que implementar a interface

tico do que implementar a interface

WindowListener

WindowListener

para

para

apenas tratar o evento de

(36)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JFrame

JFrame

javax

javax

.swing.

.swing.

JFrame

JFrame

„

„

Alguns m

Alguns m

étodos:

é

todos:

„

„

setExtendedState

setExtendedState

(int

(int

state

state

)

)

: Define o estado atual do Frame.

: Define o estado atual do Frame.

Pode ser uma das seguintes constantes:

Pode ser uma das seguintes constantes:

„

„

NORMAL

NORMAL

: O Frame fica no seu estado normal de exibi

: O Frame fica no seu estado normal de exibi

ç

ç

ão.

ão.

„

„

ICONIFIED

ICONIFIED

: O Frame

: O Frame

é

é

minimizado.

minimizado.

„

„

MAXIMIZED_HORIZ

MAXIMIZED_HORIZ

: O Frame

: O Frame

é

é

maximizado horizontalmente.

maximizado horizontalmente.

„

„

MAXIMIZED_VERT

MAXIMIZED_VERT

: O Frame

: O Frame

é

é

maximizado verticalmente.

maximizado verticalmente.

„

„

MAXIMIZED_BOTH

MAXIMIZED_BOTH

: O Frame

: O Frame

é

é

maximizado em todas as

maximizado em todas as

dire

dire

ç

ç

ões.

ões.

Todos estes parâmetros são constantes

Todos estes parâmetros são constantes

static

static

que podem ser

que podem ser

acessadas atrav

acessadas atrav

é

é

s do nome da Classe

s do nome da Classe

JFrame

JFrame

.

.

Algumas

Algumas

destas op

destas op

ç

ç

ões podem não ser suportadas em determinadas

ões podem não ser suportadas em determinadas

plataformas

(37)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JFrame

JFrame

javax

javax

.swing.

.swing.

JFrame

JFrame

„

„

Alguns m

Alguns m

étodos:

é

todos:

„

„

setIconImage

setIconImage

(

(

Image

Image

i)

i)

: Define a imagem que ser

: Define a imagem que ser

á

á

exibida

exibida

como

como

í

í

cone da Barra de t

cone da Barra de t

í

í

tulo e quando o Frame for

tulo e quando o Frame for

minimizado. Se não for definido uma imagem padrão ser

minimizado. Se não for definido uma imagem padrão ser

á

á

adotada.

adotada.

„

„

setIconsImagens

setIconsImagens

(

(

List

List

<?

<?

extends

extends

Image

Image

>

>

icones

icones

)

)

: Lista

: Lista

contendo v

contendo v

á

á

rios objetos filhos de

rios objetos filhos de

Image

Image

. O Sistema

. O Sistema

operacional ir

operacional ir

á

á

escolher qual

escolher qual

í

í

cone ser

cone ser

á

á

utilizado na Janela

utilizado na Janela

de acordo com a situa

de acordo com a situa

ç

ç

ão dela (Minimizada, Maximizada,

ão dela (Minimizada, Maximizada,

etc.). Somente

(38)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

ExemploJFrame1

ExemploJFrame1

package br.com.

package br.com.alexandrefeitosaalexandrefeitosa..cursojsecursojse.exemplos..exemplos.jframejframe;; import

import javaxjavax.swing..swing.JFrameJFrame;;

import

import javaxjavax.swing..swing.JLabelJLabel;;

import

import javajava..awtawt.Container;.Container;

import

import javajava..awtawt..FlowLayoutFlowLayout;;

public

publicclassclassExemploJFrame1 ExemploJFrame1 extendsextendsJFrameJFrame{{

private

privateJLabelJLabellabellabel;; public

publicExemploJFrame1(){ExemploJFrame1(){

super("Exemplo

super("Exemplo JFrameJFrame");");

Container

Container containercontainer= = getContentPanegetContentPane();(); label

label= new = new JLabelJLabel(" Exemplo de Uso de (" Exemplo de Uso de JFrameJFrame");"); setLayout

setLayout(new (new FlowLayoutFlowLayout());());

container.

container.addadd((labellabel););

setLocation

setLocation(400,400);(400,400); setSize

setSize(300,100);(300,100); setResizable

setResizable((falsefalse););

setVisible

setVisible((truetrue);); }

}

public

publicstaticstaticvoidvoidmainmain(String[] (String[] argsargs) {) {

ExemploJFrame1 principal = new ExemploJFrame1();

ExemploJFrame1 principal = new ExemploJFrame1();

principal.

principal.setDefaultCloseOperationsetDefaultCloseOperation((JFrameJFrame.EXIT_ON_CLOSE);.EXIT_ON_CLOSE);

}

}

Uma outra forma de adicionar controles em

um JFrame.

Define que o JFrame não pode ser

redimensionado

Define que a aplicação é encerrada com

System.exit() quando o JFrame for fechado.

Chama o Construtor do pai passando o

Texto para o título do Frame. A mesma

operação poderia ser feita com o setTitle()

(39)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JFrame

JFrame

javax

javax

.swing.

.swing.

JFrame

JFrame

„

„

At

At

é

é

o Java 1.4

o Java 1.4

para se adicionar de forma correta um

para se adicionar de forma correta um

componente ao

componente ao

JFrame

JFrame

se faz necess

se faz necess

á

á

rio recuperar primeiro a

rio recuperar primeiro a

referência de um Container atrav

referência de um Container atrav

é

é

s do m

s do m

é

é

todo

todo

getContentPane

getContentPane

()

()

. E utilizar este Container para adicionar os

. E utilizar este Container para adicionar os

componentes.

componentes.

Container

Container

container

container

=

=

getContentPane

getContentPane

();

();

container.

container.

add

add

(

(

botao

botao

);

);

„

„

Utilizar

Utilizar

direto o m

direto o m

é

é

todo

todo

add

add

do

do

JFrame

JFrame

para adicionar um

para adicionar um

Component

Component

faz com o que este seja adicionado a um Container

faz com o que este seja adicionado a um Container

atr

atr

á

á

s do Container de exibi

s do Container de exibi

ç

ç

ão de componentes do

ão de componentes do

JFrame

JFrame

. E

. E

este

este

componente adicionado fica invis

componente adicionado fica invis

í

í

vel

vel

.

.

JFrame

JFrame

frame =

frame =

new

new

JFrame

JFrame

();

();

frame.

(40)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JFrame

JFrame

javax

javax

.swing.

.swing.

JFrame

JFrame

„

„

O mesmo erro acontece at

O mesmo erro acontece at

é

é

o Java 1.4 caso

o Java 1.4 caso

chamar

chamar

-

-

mos

mos

diretamente o m

diretamente o m

é

é

todo

todo

setLayout

setLayout

()

()

ou

ou

remove()

remove()

do

do

JFrame

JFrame

.

.

Deve

Deve

-

-

se sempre chamar os m

se sempre chamar os m

é

é

todos do Container retornado

todos do Container retornado

pelo

pelo

getContentPane

getContentPane

()

()

;

;

„

„

A partir do Java 1.5

A partir do Java 1.5

o compilador converte automaticamente as

o compilador converte automaticamente as

chamadas ao m

chamadas ao m

é

é

todo

todo

add

add

do

do

JFrame

JFrame

para:

para:

getContentPane

getContentPane

().

().

add

add

(

(

Component

Component

).

).

„

„

Isto evita qualquer erro. E os m

Isto evita qualquer erro. E os m

é

é

todos

todos

addImpl

addImpl

()

()

,

,

remove()

remove()

, e

, e

setLayout

setLayout

()

()

da classe

da classe

JFrame

JFrame

j

j

á

á

manipulam diretamente o

manipulam diretamente o

Container correto retornado pelo m

Container correto retornado pelo m

é

é

todo

todo

getContenPane

getContenPane

()

()

, que

, que

é

(41)

Interfaces Gr

Interfaces Gr

á

á

ficas

ficas

„

„

JRootPane

JRootPane

javax

javax

.swing.

.swing.

JRootPane

JRootPane

Classes Swing que usam o

JRootPane

internamente

Referências

Documentos relacionados

Apresentação sobre o Registro Nacional de Sementes e Mudas - RENASEM - Sr.ª Virgínia Carpi/ Coordenadora de Sementes e Mudas/DFIA/SDA. Virginia se apresentou, disse estar

Nas figuras, s´o est˜ao apresentados os resultados obtidos quando a estimativa do canal foi calculada com o uso da SVD e com o algoritmo PASTd; as estimativas de canal obtidas com

O Conselho chegou a acordo quanto a uma orientação geral parcial sobre a proposta de regulamento relativo ao Fundo Europeu dos Assuntos Marítimos e da Pesca (FEAMP), que substitui

Um importante projeto de estudo em andamento no Alfadown tem como foco principal contribuir para uma melhor compreensão da Educação Digital Inclusiva na Síndrome de Down,

Este artigo teve como objetivo construir um modelo de relacionamento dos determinantes de satisfação para usuários de serviços de academias de ginástica e

SELETIVIDADE DE FUNGICIDAS E HERBICIDAS REGISTRADOS NA CULTURA DO MILHO A Trichogramma pretiosum RILEY, 1879 (HYMENOPTERA:.. TRICHOGRAMMATIDAE)

Philipe Gomes Vieira (CRP 04/31114) - Possui graduação em Psicologia pela Universidade Presidente Antônio Carlos (2009), especialização em Avaliação e

A presente pesquisa constatou por meio desta revisão que o tratamento inicial visa reduzir a dor, entretanto desde esta faze é importante trabalhar os exercícios