Professional Documents
Culture Documents
OBJETIVOS DA DISCIPLINA
Entender os principais conceitos do
paradigma de Orientao a Objetos e sua
importncia no processo de
desenvolvimento de software
Estudar uma linguagem de programao
que suporte os conceitos de OOP (Java)
EMENTA
1.
2.
3.
4.
5.
6.
7.
Introduo POO
Anlise Orientada a Objetos
Introduo Linguagem Java
Classes, Atributos e Mtodos
Herana
Herana Mltipla
Aspectos de Implementao de LOO
BIBLIOGRAFIA
POO, Danny C. C. Object-Oriented Programming and
Java; 3ed, Springer, 2001
WINBLAD, Ann L. Software Orientado ao Objeto;
Makron Books, 1993
DEITEL, H. M. Java como Programar; 3 ed, Bookman,
2001
BOOCH, Grady Object-Oriented Analysis and Design
with Applications; 2ed, Benjamin, 1994
KHOSHAFIAN, Setrag Object Orientation: Concepts,
languages, database, user interfaces; Wiley, 1990
COAD, Peter Anlise Baseada em Objetos; Campus,
1992.
Programao Orientada a Objetos
Flvio de Oliveira Silva
AVALIAO
OBSERVAES
Material Apoio
Atendimento
Tera-Feira
Sexta-Feira
INTRODUO A POO
A Programao Orientada a Objetos (POO)
um paradigma Baseado em objetos
Paradigma Modelo, padro para
especificao de um problema
Paradigmas existentes na programao de
computadores: Procedimental; Funcional;
Lgico e Orientado a Objetos(OO)
PROCEDIMENTAL (Algortmica)
FUNCIONAL
LGICA
10
PARADIGMAS
11
INTRODUO A POO
Conceitos Bsicos
1.
2.
3.
4.
5.
OBJETO
MTODO
MENSAGEM
CLASSE
CLASSIFICAO
1.
2.
6.
7.
8.
GENERALIZAO
ESPECIALIZAO
HERANA
ENCAPSULAMENTO
POLIMORFISMO
Programao Orientada a Objetos
Flvio de Oliveira Silva
12
OBJETO
13
OBJETO
14
MTODO
15
MENSAGEM
Exemplos
Point p(0,0), pNewCenter(2,3);
Circle c(p,3);
c.getArea();
/ / Exemplo Mensagem
c.setCenter(pNewCenter); / / Exemplo Mensagem
Programao Orientada a Objetos
Flvio de Oliveira Silva
16
CLASSE
17
CLASSIFICAO
CLASSE
???
???
???
???
???
18
GENERALIZAO
ESPECIALIZAO
GENERALIZAO
ESPECIALI ZAO
19
20
EXEMPLO
10
HERANA
21
HERANA
22
11
HERANA x USO
23
HERANA x USO
24
12
ENCAPSULAMENTO
25
POLIMORFISMO
26
13
POLIMORFISMO - Exemplo
FIGURA
draw()
RETNGULO
TRINGULO
CRCULO
draw()
draw()
draw()
27
ENGENHARIA
DE SOFTWARE
CICLO DE VIDA DA ENG. SOFTWARE
(Mod. Clssico)
ENG.
SISTEMAS
ANLISE
PROJETO
CODIFICAO
TESTE
MANUTENO
28
14
ENGENHARIA DE SOFTWARE
ENGENHARI A DE SI STEMAS
Levantamento dos requisitos
Inserir o sistema em um contexto maior
Hardware; Pessoas; Outros sistemas
Viso geral e ampla do sistema
Riscos; Custos; Prazos; Planejamento
29
ENGENHARIA DE SOFTWARE
ANLI SE
Continua o processo de coleta de requisitos,
porm concentra-se no mbito do software
Modelos Dados; Funes e comportamentos
Particionamento do problema
Documentao e Reviso dos requisitos
ANLISE ESTRUTURADA DFD
CLASSES
30
15
ENGENHARIA DE SOFTWARE
PROJETO
Como o software ir executar os requisitos
Estrutura de dados; Arquitetura do Software;
Detalhes de execuo; caracterizao da
interface
Produzir um modelo que permita a sua
construo posterior
PROJETO ESTRUTURADO Mdulos
31
ENGENHARIA DE SOFTWARE
CODI FI CAO
Traduzir o projeto para uma linguagem de
computador
Projeto detalhado pode levar a uma
codificao mecnica (Ferramenta CASE)
TESTES
Verificao se o cdigo atende aos requisitos
Aspectos lgicos e internos do software
Teste de todas as instrues
Aspectos funcionais externos entrada
produz o resultado esperado
Programao Orientada a Objetos
Flvio de Oliveira Silva
32
16
ENGENHARIA DE SOFTWARE
MANUTENO
Mudanas necessrias aps a entrega ao
cliente
Mudanas Erros; Alterao ambiente
externo ou alterao especificao de
requisitos.
33
34
17
35
ANLISE
ORIENTADA A OBJETOS (OOA)
IDENTIFICAO DE OBJETOS CRITRIOS
1.
2.
3.
4.
5.
6.
36
18
37
38
19
ANLISE
ORIENTADA A OBJETOS (OOA)
EXEMPLO:
O software SafeHome possibilita que o dono da casa configure o sistema de
segurana quando ele for instalado, monitora todos os sensores ligados ao sistema de
segurana e interage com o dono da casa atravs de um teclado e teclas de funo
contidas no painel de controle do SafeHome.
Durante a instalao o painel de controle usado para programar e configurar o
sistema.
A cada sensor atribuido um nmero e um tipo, uma senha mestra programada para
armar e desarmar o sistema e nmeros telefnicos so introduzidos para serem discados
quando ocorrer um evento sensor .
Quando um evento sensor sentido pelo software, ele dispara um alarme sonoro ligado
ao sistema. Aps um tempo de espera , que especificado pelo dono da casa durante as
atividades de configurao do sistema, o software disca um nmero telefnico do servio
de monitorao, oferece informaes sobre o local , registrando a natureza do evento
que foi detectado. O nmero ser novamente discado a 20 segundos at que a ligao
telefnica seja completada.
Todas as interaes com o SafeHome so gerenciadas por um subsistema de interao
com o usurio, que l a entrada fornecida atravs do teclado e das chaves de funo,
exibe mensagens de prompting e informaes sobre o status do sistema no mostrador
de cristal lquido (LCD). A interao com o teclado assume a seguinte forma...
39
Classificao Geral
40
20
Caractersticas
41
SISTEMA
EVENTO
SENSOR
SENSOR
ALARME
SONORO
42
21
PAINEL DE
CONTROLE
SISTEMA
senha mestra
nmeros telefnicos
tempo espera
informaes local
natureza evento
SENSOR
nmero
tipo
EVENTO
SENSOR
ALARME
SONORO
43
Configure
Instalado
Monitora
Ligados
Interage
Instalao
programar
configurar
programada
armar
desarmar
introduzidos
serem discados
ocorrer
sentido
dispara
especificado
configurao
disca
registrando
detectado
Discado
ligao
interaes
gerenciadas
interao
l
fornecida
exibe
SISTEMA
senha mestra
nmeros telefnicos
tempo espera
informaes local
natureza evento
programar()
armar()
desarmar()
monitora()
disparar_alarme()
discar()
44
22
PAINEL DE
CONTROLE
SENSOR
nmero
tipo
ALARME
SONORO
EVENTO
SENSOR
45
23
47
ANLI SE
Rejeitado: 1 e 2 Falham
Aceito: Todas se aplicam
Aceito: Todas se aplicam
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Aceito: Todas se Aplicam
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Aceito: Todas se aplicam
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
Rejeitado: 3 falha
48
24
ANLI SE
Rejeitado: 1 e 2 Falham
Aceito: Todas se aplicam
Aceito: Todas se aplicam
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Aceito: Todas se Aplicam
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Aceito: Todas se aplicam
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
Rejeitado: 3 falha (Atributo)
49
BURACO
identificador
endereo
tamanho
localizao
bairro
prioridade
ORDEM
TRABALHO
localizao
tamanho
identificador_equipe
nmero_pessoas
equipamentos
horas
status
quantidade material
custo
DANO
cidado
endereo
telefone
tipo
quantia
50
25
Verbos destacados
registrados
Recebem
Armazenados
Associados
Guardar
51
PROGRAMAO EM CAMADAS
52
26
PROGRAMAO EM CAMADAS
53
54
27
Valor: 40 pontos
Apresentao: Relatrio Escrito e Entrevista de avaliao
O projeto ser entregue em etapas durante o curso. Dessa
forma partes bem definidas sero entregues em diferentes
datas.
O trabalho ser feito em grupo e o mesmo dever possuir
entre 2 e 3 pessoas.
Cada participante dever ficar responsvel por
implementar classes especficas, porm ser necessrio o
entendimento da soluo como um todo.
Inicialmente dever ser feita uma proposta de trabalho que
ir conter uma descrio de um software a ser
desenvolvido.
O projeto dever utilizar interface grfica (Applet ou
Windows)
55
CRITRIOS DE AVALIAO
COMPLEXIDADE - A complexidade da proposta ser um
item que ser analisado. As propostas que tiverem uma
maior complexidade, sero melhor avaliadas.
FINALIZAO DA PROPOSTA Aps um detalhamento
da proposta sero especificados quais os requisitos
necessrios ao software. Ao final ser feita uma
verificao se todos estes requisitos foram
implementados e alm disso sero feitos testes para
verificar o funcionamento do software como um todo.
RESPEITO AO CRONOGRAMA - Neste item, ser
verificado se o grupo entregou todas as etapas nas datas
solicitadas.
Programao Orientada a Objetos
Flvio de Oliveira Silva
56
28
57
RELATRIO
A pontuao do neste item ser compartilhada por todos
os componentes do grupo. Ser verificado se o relatrio
contm todas as sees necessrias conforme indicado
abaixo:
INTRODUO
DESENVOLVIMENTO
Especificao de Requisitos
Diagrama de Classes
Descrio da soluo
Tecnologias Utilizadas
CONCLUSO
BIBLIOGRAFIA
58
29
Outras sugestes
http:/ / java.sun.com/ j2se/ 1.4.1/ docs/ api
Livro Deitel; outras publicaes;
59
ABSTRACO DE DADOS
60
30
61
Dados
Mtodos
Construtores - constri e inicializa uma instncia do TAD
Modificadores Modifica estado (dados) do TAD
Acessores Retorna estado do TAD, sem modificar seus dados
Destrutores Destri uma instncia do TAD
62
31
63
Nome
Dados
Circulo
raio
xCentro
yCentro
Mtodos
Construtor
Valores I niciais: O raio do crculo
Processo:
Cria um crculo de raio informado e origem no ponto (0,0)
Area
Entrada:
Pr-condies:
Processo:
Sada:
Ps-condies:
Nenhuma
Nenhuma
Calcula a rea do crculo
A rea do crculo
Nenhuma
Escala
Entrada:
Pr-condies:
Processo:
Sada:
Ps-condies:
64
32
A TECNOLOGIA JAVA
65
A TECNOLOGIA JAVA
66
33
A TECNOLOGIA JAVA
67
A TECNOLOGIA JAVA
68
34
JAVA
SDK
69
JAVA
SDK
70
35
DESCRIO
javac
java
javadoc
appletviewer
jar
jdb
71
HELLO
JAVA WORLD!
72
36
HELLO
JAVA WORLD!
73
Compilao
(javac)
ByteCodes (Classe.class)
Compactao
(jar)
Compactado (Classe.jar)
Execuo
(java)
74
37
75
nmero
identificador
76
38
// Um valor inteiro.
77
PALAVRAS
RESERVADAS
abstract
boolean
break
byte
case
catch
char
class
const
continue
default
do
double
else
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
package
private
protected
public
return
short
static
strictfp
super
switch
synchronized
this
throw
throws
transient
try
void
volatile
while
78
39
TAMANHO
FAIXA DE VALORES
(bits)
VALOR MNIMO
VALOR MXIMO
inteiro
8
-128
127
byte
inteiro
16
-32768
32767
short
inteiro
32
-2147483648
2147483647
int
inteiro
64
-9223372036854775808 9223372036854775807
long
ponto flutuante, preciso simples
32
3,4e-038
3,4e+038
float
ponto flutuante, preciso dupla
64
1.7e-308
1.7e-308
double
caracter unicode
16
0
65535
char
valor lgico (falso/verdadeiro)
false
true
boolean
TIPO
DESCRIO
79
80
40
DECLARANDO VARIVEIS
81
CRIANDO OBJETOS
Pessoa p;
//Declara uma varavel
p = new Pessoa(); //Aloca o objeto
Pessoa p2 = new Pessoa(); //Declara e Aloca
82
41
OPERADORES
20
6
91
1
1.8571428
83
OPERADORES
bY
bX && bY
bX || bY
true
true
false
false
true
false
true
false
true
false
false
false
true
true
true
false
!bX
false
true
84
42
OPERADORES
RELACIONAIS
IGUALDADE
DESIGUALDADE
MENOR QUE
==
!=
<
<=
<=
>=
Exemplos:
int iH = 4, iJ = 4, iK = 6;
iH == iJ
//Retorna true
iH == iK
//Retorna false
iK == iK
//Retorna true
iH < iK
//Retorna true
iH < iJ
//Retorna false
iH <= iJ
//Retorna true
Programao Orientada a Objetos
Flvio de Oliveira Silva
85
OPERADORES
RELACIONAIS (cont.)
Exemplos:
Person homem = new Person();
Person mulher = new Person();
homem == mulher //Retorna false. Mesmo
//valor porm diferentes objetos
homem == homem //Retorna true
86
43
OPERADORES
OPERADORES BINRIOS
"AND" BINRIO
"OR" EXCLUSIVO BINRIO
&
^
|
~
Exemplos:
int c = 4;
int d = 6;
int bytRes;
bytRes = c & d;
bytRes = c ^ d;
bytRes = c | d;
bytRes = ~c;
bytRes = d >> 2;
bytRes = d << 2;
//binrio
//binrio
//retorna
//retorna
//retorna
//retorna
//retorna
//retorna
00000100
00000110
4
2
6
-5
1
24
00000100
00000010
00000110
11111011
00000001
00011000
87
OPERADORES
OPERADOR CONDICIONAL( ? : )
Exemplo:
a?b : c
/ / retorna o valor b se a true,
/ / caso contrrio retorna o valor c
88
44
OPERADORES
= += *=
&= ^=
Exemplos:
a/b*c
interpretado como (a/b)*c
a+b*c/d interpretado como a+((b*c)/d)
Programao Orientada a Objetos
Flvio de Oliveira Silva
!=
89
ATRIBUIO DE VALORES(Operador = )
v = v op f;
a = a + 2;
90
45
Exemplo:
91
BLOCOS DE CDIGO
92
46
BLOCOS DE CDIGO
93
94
47
NVEIS DE ACESSO
95
SOBRECARREGAMENTO (Overloading)
96
48
CRIANDO
UMA CLASSE EM JAVA
CONSTRUTORES
DESTRUTORES
MODIFICADORES
ACESSORES
OUTROS MTODOS
97
MTODOS CONSTRUTORES
classe
consistente
98
49
MTODOS DESTRUTORES
99
100
50
101
102
51
103
104
52
CRIANDO
UMA CLASSE Exemplo 2
105
106
53
107
108
54
}
Programao Orientada a Objetos
Flvio de Oliveira Silva
109
110
55
111
56
113
ESTRUTURAS
DE CONTROLE
114
57
ESTRUTURAS DE CONTROLE
115
ESTRUTURAS DE CONTROLE
116
58
ESTRUTURAS DE CONTROLE
117
ESTRUTURAS
DE CONTROLE
118
59
ESTRUTURAS
DE CONTROLE
! Exemplo:
int a = 2;
switch (a){
case 1 : {
System.out.println("A igual a 1");
break;
}
case 2 : {
System.out.println("A igual a 2");
break;
}
case 3 : {
System.out.println("A igual a 3");
break;
}
default : {
System.out.println("A diferente de 1,2e3");
}
Programao Orientada a Objetos
}
Flvio de Oliveira Silva
119
ESTRUTURAS DE CONTROLE
120
60
ESTRUTURAS DE CONTROLE
121
ESTRUTURAS DE CONTROLE
!
122
61
ESTRUTURAS DE CONTROLE
123
ESTRUTURAS DE CONTROLE
124
62
ESTRUTURAS DE CONTROLE
125
ESTRUTURAS DE CONTROLE
126
63
ARRAYS
(VETORES)
"
127
ARRAYS (VETORES)
128
64
ARRAYS (VETORES)
#
129
ARRAYS (VETORES)
#
130
65
ARRAYS (VETORES)
#
131
ARRAYS
(VETORES)
#
132
66
ARRAYS
(VETORES)
#
133
ARRAYS (VETORES)
#
134
67
ARRAYS (VETORES)
#
135
ARRAYS
(VETORES)
#
136
68
LINGUAGEM
JAVA EXEMPLO
#
137
138
69
LINGUAGEM
JAVA EXEMPLO
#
139
140
70
141
java.awt
java.io
java.lang
java.net
java.rmi
java.security
java.sql
java.util
javax.swing
142
71
143
144
72
145
146
73
HERANA
%
%
%
%
%
147
HERANA
%
148
74
HERANA - REPRESENTAO
149
HERANA
- REPRESENTAO
%
150
75
HERANA x USO
HERANA
classe A um tipo de B
& USO / AGREGAO (Relao de Contedo)
classe D contm classe C
classe D usa classe C
classe C parte da classe D
Exemplo: Uma Crculo contm um Ponto
central; Um Tringulo utiliza trs objetos da
classe Ponto; Um Ponto parte da classe
Quadrado
Programao Orientada a Objetos
Flvio de Oliveira Silva
151
HERANA
x USO - REPRESENTAO
%
152
76
HERANA x USO
Representao da Herana
(Simples e Mltipla)
Programao Orientada a Objetos
Flvio de Oliveira Silva
153
HERANA
'
'
'
'
154
77
'
HERANA
155
HERANA EXEMPLOS
class Pessoa {
protected String name;
/ / Construtor
public Pessoa(){
name = "";
}
public Pessoa(String n){
name = n;
}
/ / Get Metodos
String getName(){
return name;
}
/ / continuao...
/ / set Metodos
void setName(String s){
name = s;
}
}
156
78
HERANA EXEMPLOS
class Empregado extends / / continuando...
Pessoa {
/ / Get Metodos
protected double
double getSalario(){
dSalario;
return dSalario;
/ / Construtor
}
public Empregado(String / / set Metodos
n, double dS){
void setSalario(double
name = n;
dS){
dSalario = dS;
dSalario = dS;
}
}
}
157
'
'
'
'
'
158
79
'
159
HERANA EXEMPLOS
class Gerente extends
Empregado {
protected double
dBonificacao;
/ / Construtor
public Gerente(String n,
double dS, double
dB){
super( n,dS) ;
dBonificacao = dB;
}
double getBonificacao(){
return dBonificacao;
}
/ / continua...
double getSalario( ) {
return ( dSalario +
dBonificacao) ;
}
/ / set Metodos
void
setBonificacao(double
dS){
dBonificacao = dS;
}
}
160
80
HERANA
E POLIMORFISMO
'
'
'
161
'
'
'
'
162
81
'
'
163
/ / continua...
/ / set Metodos
void setName(String s){
name = s;
}
abstract void
printName();
}
164
82
/ / Get Metodos
double getSalario(){
return dSalario; }
/ / set Metodos
void setSalario(double
dS){
dSalario = dS; }
void printName( ) {
System.out.println(
"Empregado: " +
name);
}
}
165
HERANA MLTIPLA
'
GERENTE
VENDEDOR
autoriza()
processaPedido()
VENDEDOR
processaPedido()
GERENTE DE
VENDAS
GERENTE DE
VENDAS
MODELAGEM
INCORRETA
166
83
HERANA
MLTIPLA
(
CLASSE_B
String a;
getA();
String a;
getA();
CLASSE_C
167
HERANA MLTIPLA
168
84
HERANA MLTIPLA
(
169
HERANA MLTIPLA
170
85
class GerenteVendas
/ /continua..
extends Vendedor
void printName(){
implements
GerenteInt{
System.out.println("Ve
protected String
ndedor: " + name); }
sRegiao;
/ / Construtor
public boolean
public
autorizar( ) {
GerenteVendas(String
System.out.println("Ve
n, double dS, double
nda Autorizada");
dC, String sReg){
return true; }
super(n, dS, dC);
}
sRegiao = sReg;
}
Programao Orientada a Objetos
Flvio de Oliveira Silva
171
HERANA MLTIPLA
172
86
HERANA MLTIPLA
173
HERANA MLTIPLA
(
174
87
HERANA MLTIPLA
(
175
HERANA MLTIPLA
(
CLASSE ABSTRATA
INTERFACE
Somente
pode
conter
constantes
(implicitamente so public final static)
176
88
)
)
177
TRATAMENTO DE EXCEES
178
89
TRATAMENTO DE EXCEES
*
errorCode ler_um_arquivo{
errorCode = 0;
abrir_arquivo;
if (arquivo_aberto){
determinar_seu_tama
nho;
if (tamanho_disponivel){
alocar_memria;
if (memoria_alocada){
ler_arquivo;
if (erro_Leitura)
errorCode = -4;
} else
errorCode = -3;
} else
errorCode = -2;
fechar_arquivo;
if (erro_Fechar_arquivo)
errorCode = -5
} else
errorCode = -1;
return errorCode; }
179
TRATAMENTO DE EXCEES
errorCode leArquivo{
errorCode = 0;
abrir_arquivo;
if (arquivo_nao_aberto)
return -1;
determinar_seu_tamanho;
if (tamanho_nao_disponivel) {
fechar_arquivo;
return -2;}
alocar_memria;
if (memoria_nao_alocada){
fechar_arquivo;
return -3;}
ler_arquivo;
if (erro_Leitura){
fechar_arquivo;
return -4;}
fechar_arquivo;
if (erro_Fechar_arquivo)
return -5
return errorCode;}
180
90
TRATAMENTO DE EXCEES
EXCEO
TIPOS DE EXCEO
181
TRATAMENTO DE EXCEES
VANTAGENS
metodo1 {
int metodo2() {
int metodo3() {
int error;
int error;
int error;
error = metodo2();
error = metodo3();
error = leArquivo();
if (error)
if (error)
if (error)
/ /ProcessaErro
return error;
else
else
/ / continua
}
return error;
else
/ / continua
}
/ / continua
}
182
91
TRATAMENTO DE EXCEES
VANTAGENS
183
TRATAMENTO DE EXCEES
QUANDO UTILI ZAR
184
92
TRATAMENTO DE EXCEES
COMO UTILIZAR
)
185
186
93
try{
... }
catch(ExceptionType1 e){
... }
catch (ExceptionType2 e){
... }
catch (Exception e){
... }
finally {
...
}
Programao Orientada a Objetos
Flvio de Oliveira Silva
187
DISPARANDO EXCEES
188
94
189
Importante:
190
95
TRATAMENTO
DE EXCEES - EXEMPLO
private double calculaTotal(String sC, String sJ, String sP, String sM) throw s
NumberFormatException {
if (sC.equals(""))
throw new NumberFormatException("O CAMPO CAPITAL EST VAZIO");
if (sJ.equals(""))
throw new NumberFormatException("O CAMPO JUROS EST VAZIO");
if (sPrazo.equals(""))
throw new NumberFormatException("O CAMPO ANOS EST VAZIO");
/ /converte o texto para double
dCapital = Double.parseDouble(sC);
dJuros = Double.parseDouble(sJ);
dPrazo = Double.parseDouble(sP);
dTotal = 0;
if (dPrazo = = 0)
throw new NumberFormatException("O NMERO DE ANOS IGUAL A ZERO");
if (sMetodo.equals(aMetodos[ 0])){
dTotal = ((dCapital * (1 + (dJuros/ 100)* dPrazo))/ (dPrazo))/12;
if (sMetodo.equals(aMetodos[ 1])){
dTotal = ((dCapital * Math.pow((1 + (dJuros/100)),dPrazo))/ dPrazo)/ 12;
}
return dTotal;
191
try {
dTotal = calculaTotal(txtCapl.getText(),txtJur.getText(), txtPra.getText(),sMetodoCalculo);
...
}
catch (NumberFormatException ex)
{
JOptionPane.showMessageDialog(null,ex);
JOptionPane.showMessageDialog(null,ex.getMessage());
}
192
96
try {
dTotal = calculaTotal(txtCapl.getText(),txtJur.getText(), txtPra.getText(),sMetodoCalculo);
...
}
catch (NumberFormatException ex)
{
JOptionPane.showMessageDialog(null,ex);
JOptionPane.showMessageDialog(null,ex.getMessage());
}
193
194
97
195
196
98
197
PACOTES
/
198
99
PACOTES
/
199
PACOTES
Para organizar os arquivos em um pacote a regra a
seguinte:
0 Criar cada classe ou interface em um arquivo .java
diferente.
0 Colocar estes arquivos em uma hierarquia de
diretrio equivalente estrutura de nome do pacote
Exemplo:
Nome do pacote com.autoenge.people
Arquivos: pessoa.java; cliente.java; empregado.java;
vendedor.java; gerenteI nt.java; gerenteVendas.java
Diretrio onde esto os arquivos: / com/ autoenge/ people
Programao Orientada a Objetos
Flvio de Oliveira Silva
200
100
PACOTES
/
201
PACOTES
/
Exemplo
import java.io.* ;
File d = new File(fname.txt)
202
101
203
ESCRITA (WRITE)
204
102
ENTRADA
E SADA (I/ O)
/
205
ENTRADA
E SADA CLASSES
/
206
103
ENTRADA
E SADA CLASSES
/
207
/
/
208
104
ENTRADA
E SADA (I/ O) - BUFFERIZADA
/
Byte Streams
/
BufferedInputStream
/ BufferedOutputStream
209
210
105
ENTRADA
E SADA (I/ O) - TIPOS BSICOS
1
'DWD,QSXW6WUHDP
'DWD2XWSXW6WUHDP
1
1
Character Streams
1 No apresenta esta
funcionalidade!
211
212
106
213
ENTRADA
E SADA (I/ O) - SERIALIZAO
1
214
107
ENTRADA
E SADA (I/ O) - CONVERSO
3
ENTRADA
E SADA (I/ O) PADRO
1
System.in
4 Saida Padro
216
108
217
218
109
219
220
110
http://java.sun.com/docs/books/tutorial/uiswing/TOC.html
221
JAVA
INTERFACE GRFICA
3
222
111
223
224
112
INTERFACE
GRFICA
5
225
DOS COMPONENTES
8 HIERARQUIA
&ODVVHVGHILQLGDVSHORSDFRWH6ZLQJLPSRUWMDYD[VZLQJ
java.lang.Object
java.awt.component
java.awt.container
javax.swing.JComponent
javax.swing.text.JTextComponent
javax.swing.JTextField
javax.swing.JLabel
javax.swing.AbstractButton
javax.swing.JButton
226
113
HIERARQUIA
DOS EVENTOS
8
&ODVVHVSDUDPDQLSXODRGHHYHQWRV
LPSRUWMDYDDZWHYHQW
java.lang.Object
java.util.EventObject
java.awt.AWTEvent
java.awt.event.ActionEvent
227
228
114
229
230
115
231
Flow Layout
8
Componentes dispostos em uma linha,
sequencialmente da esquerda para direita
na ordem em que foram adicionados.
232
116
Flow Layout
233
...
//Recupera o container da janela (JFrame)
Container c = getContentPane();
//Ajusta o modo de gerenciamento
c.setLayout(new
FlowLayout(FlowLayout.CENTER,10,50));
//adiciona componentes(botes) ao container
btnAnt = new JButton("ANTERIOR");
c.add(btnAnt);
btnProx = new JButton("PRXIMO");
c.add(btnProx);
Programao Orientada a Objetos
Flvio de Oliveira Silva
234
117
//continua...
btnNew = new JButton("NOVO");
c.add(btnNew);
btnDelete = new JButton("APAGAR");
c.add(btnDelete);
bntOk = new JButton("OK");
c.add(bntOk);
...
235
BorderLayout
8
Componentes dispostos cinco regies:
Norte(NORTH); Sul(SOUTH); Leste(EAST);
Oeste(WEST) e Centro (CENTER). Cada
regio pode conter no mximo um
componente.
236
118
BorderLayout
8
Um Componente ocupa toda a rea de uma
regio.
8
Componente CENTRAL expande e ocupa reas
no utilizadas (LESTE e/ou OESTE). Se rea
centro no utilizada a mesma deixada vazia.
237
INTERFACE
GRFICA- LAYOUTS
;
BorderLayout Exemplo
...
//Recupera o container da janela (JFrame)
Container c = getContentPane();
//Ajusta o modo de gerenciamento
c.setLayout(new BorderLayout(20,20));
btnNew = new JButton("WEST");
c.add(btnNew,BorderLayout.WEST);
btnDelete = new JButton("CENTER");
c.add(btnDelete,BorderLayout.CENTER);
bntOk = new JButton("SOUTH");
c.add(bntOk,BorderLayout.SOUTH);
...
Programao Orientada a Objetos
Flvio de Oliveira Silva
238
119
GridLayout
<
A rea dividida em retngulos iguais,
conforme o nmero de linhas e colunas
especificadas. Um nico componente ocupa
toda a rea deste retngulo
239
GridLayout
Quando o nmero de linhas especificado o
nmero de colunas calculado automaticamente,
conforme a quantidade de objetos existentes. Se
o nmero de linhas igual a zero, a quantidade
de colunas respeitada.
240
120
GridLayout Exemplo
...
//Recupera o container da janela (JFrame)
Container c = getContentPane();
//Ajusta o modo de gerenciamento
//Apesar de ser indiciado 7 colunas
//apenas 3 sero mostradas pois foi
//especificado o nmero de 2 linhas
c.setLayout(new GridLayout(2,7,10,10));
//continua...
241
GridLayout Exemplo
242
121
INTERFACE
GRFICA- PAINIS
>
>
243
INTERFACE
GRFICA- PAINIS
...
super("Layout - JPanel - DEMONSTRAO");
Container c = getContentPane();
brdLayout = new BorderLayout();
c.setLayout(brdLayout);
pnlPainel = new JPanel();
c.add(pnlPainel, BorderLayout.CENTER);
pnlPainel.setBackground(Color.blue);
pnlBotes = new JPanel(new
GridLayout(0,5,20,20));
btnAnt = new JButton("ANTERIOR");
//continua...
Programao Orientada a Objetos
Flvio de Oliveira Silva
244
122
pnlBotes.add(btnAnt);
btnProx = new JButton("PRXIMO");
pnlBotes.add(btnProx);
btnNew = new JButton("NOVO");
pnlBotes.add(btnNew);
bntOk = new JButton("OK");
pnlBotes.add(bntOk);
c.add(pnlBotes, BorderLayout.SOUTH);
pnlBotes.setBackground(Color.red);
...
245
246
123
Tipos de eventos
AO PRODUTORA DO EVENTO
CLASSE OUVINTE (LISTENER)
Clique de um boto; Digitar <enter> aps digitar um texto; escolher um item de um menu
ActionListener
Fechar uma janela; Minimizar; Restaurar o tamanho original; Ativar; Destativar; etc.
WindowListener
Pressionar o boto do mouse; Soltar o boto; Passar o Mouse sobre um componente
MouseListener
Movimentar o mouse; Arrastar (clicar e movimentar)
MouseMotionListener
Tornar um componente vsivel; Alterar a posio de um componente
ComponentListener
Componente recebe o foco (cursor) do teclado; Componente perde o foco
FocusListener
Elemento selecionado em uma lista alterado (JList; Jtable)
ListSelectionListener
Propriedade de um componente alterada
PropertyChangeListener
Utilizao de teclado (Pressionar uma tecla; digitar uma tecla; soltar uma tecla
KeyListener
Para maiores informaes - veja a classe ouvinte base
EventListener
247
248
124
249
INTERFACE
GRFICA- EVENTOS
@
EXEMPLO Clique de um boto
JButton btnOk
Classe Objeto
(JComponent)
listenerlist
handler
Tratamento handler
CLASSE TRATAMENTO
(implements ....)
handlerMethod
250
125
INTERFACE
GRFICA- EVENTOS
@
@
@
@
@
@
@
251
252
126
253
254
127
INTERFACE
GRFICA- EVENTOS
A
255
256
128
INTERFACE
GRFICA- EVENTOS
?
EVENTOS DE MOUSE
Utilizam as seguintes interfaces: MouseListener e
MouseMotionListener
?
MouseListener Interage com os seguintes eventos:
?
DB CFEHGJILKLMHN O MQPSRSEVENTO
CUT VSW ISGJGXPRODUZIDO
O CFYHPSRSCLIUN O ZHI[W PSRSCS\]GJC[ZSW I
ES^_MQC[^`VXC[YHI[YQa I
Mouse entra na rea de um componente
Mouse sai da rea de um componente
Mouse? pressionado sobre um componente
void mouseClicked(MouseEvent e)
void mouseEntered(MouseEvent e)
void mouseExited(MouseEvent e)
void mousePressed(MouseEvent e)
257
EVENTOS DE MOUSE
@
Todos os mtodos acima devem estar presentes
mesmo que no estejam sendo utilizados neste
caso o cdigo ser apenas - { }
@
As informaes que o mtodo pode utilizar,
como, por exemplo, a posio do mouse, esto
contidas no objeto - MouseEvent e
Se o mouse pressionado sobre um boto os
seguintes eventos so disparados:
0286(B35(66('
0286(B5(/($6('0286(B&/,&.('
Programao Orientada a Objetos
Flvio de Oliveira Silva
258
129
EVENTOS DE MOUSE
b
MouseMotionListener Interage com os seguintes
eventos:
EVENTO PRODUZIDO
0RXVHFOLFDGRVREUHXPFRPSRQHQWHHHQWR
void mouseDragged(MouseEvent e)
DUUDVWDGR
Mouse foi movimentado sobre um componente
void mouseMoved(MouseEvent e)
mas nenhum boto clicado
259
INTERFACE
GRFICA- EVENTOS
c
260
130
261
void windowActivated(WindowEvent e)
void windowClosed(WindowEvent e)
void windowClosing(WindowEvent e)
void windowDeactivated(WindowEvent e)
void windowDeiconified(WindowEvent e)
void windowIconified(WindowEvent e)
void windowOpened(WindowEvent e)
262
131
263
264
132
265
CLASSES ADAPTADORAS
b
Todos os mtodos definidos nas interfaces para
tratamento de eventos devem ser codificados,
pois interface possui somente a assinatura do
mtodo.
b
Mtodo no utilizado necessita pelo menos da
instruo { }
b
Uma forma de resolver este problema a
utilizao de classes Adaptadoras. So classes
so abstratas que possuem todos os mtodos
declarados um um cdigo do tipo { }
Programao Orientada a Objetos
Flvio de Oliveira Silva
266
133
CLASSES ADAPTADORAS
Para utilizar o tratamento de eventos a partir de
classes adaptadoras basta derivar a classe
adaptadora correspondente e ento redefinir
apenas os mtodos necessrios. Esta classe pode
tratar somente um tipo de evento. Exemplo:
class EventHandler extends MouseAdapter
b
CLASSE ADAPTADORA
MouseListener
MouseMotionListener
WindowListenter
FocusListener
KeyListener
ComponentListener
ContainerListener
MouseAdapter
MouseMotionAdapter
WindowAdapter
FocusAdapter
KeyAdapter
ComponentAdapter
ContainerAdapter
267
INTERFACE
GRFICA- JLABEL
c
268
134
INTERFACE
GRFICA- JLABEL
c
Mtodos principais
public void setText(String text) Altera o texto
public String getText() Recupera o texto
c
Eventos principais
PropertyChangeListener; ComponentListener;
FocusListener; KeyListener; MouseListener
269
JLABEL - Exemplo
...
//Cria um cone
Icon icnFace = new ImageIcon("C:\\FACE.gif");
//Cria um label e ajusta algumas propriedades
lblLabel1 = new JLabel("Proprietario");
lblLabel1.setToolTipText("Nome do Proprietrio
do veculo");
lblLabel2 = new JLabel("Proprietrio com cone",
icnFace, JLabel.CENTER);
//
lblLabel3 = new JLabel(icnFace);
lblLabel3.setToolTipText("Label sem o cone");
lblLabel3.setText("Ajusta o texto");
lblLabel3.setHorizontalAlignment(JLabel.RIGHT);
...
Programao Orientada a Objetos
Flvio de Oliveira Silva
270
135
INTERFACE
GRFICA- JTextField
c
Construtores principais
JTextField(int columns)- Cria um campo com um
nmero fixo de colunas
JTextField(String text) Cria e inicializa com um texto
JTextField(String text, int columns)- Cria um
271
INTERFACE
GRFICA- JTextField
Mtodos principais
public void setText(String text) Altera o texto
public String getText() Recupera o texto
public void setFont(Font f) Ajusta o tipo de letra
(fonte) no campo
public void addActionListener(ActionListener l)
Eventos principais
PropertyChangeListener; ComponentListener;
FocusListener; KeyListener; MouseListener;
ActionListener
272
136
JTextField - Exemplo
273
JTextField - Exemplo
...
if (obj == txtPrazo) || (obj == btnCalcular)){
double dTotal;
String sCap, sJuros;
dTotal = calculaTotal(sCap,sJuros,
txtPrazo.getText());
txtValor.setText(Double.toString(dTotal));}
}
}
...
}
274
137
INTERFACE
GRFICA- JCheckBox
Construtores principais
JCheckBox(String text)- Cria um checkbox no
selecionado e com um texto.
JCheckBox(String text, boolean selected)Cria um checkbox que pode estar selecionado ou no
JCheckBox(Icon icon, boolean selected)- Cria um
checkbox que possui um inicialmente somente um cone e
que pode estar selecionado ou no.
Programao Orientada a Objetos
Flvio de Oliveira Silva
275
Mtodos Principais
public void setSelected(boolean b) Altera o
estado selecionado ou no sem no entanto disparar nenhum
evento
public boolean isSelected() Verifica se o checkbox
est ou no selecionado
276
138
INTERFACE
GRFICA- JCheckBox
Eventos Principais
ActionListener;itemListener;
ComponentListener; FocusListener
277
INTERFACE
GRFICA- JRadioButton
Construtores principais
JRadioButton(String text)- Cria boto com ttulo
JRadioButton(String text, boolean selected)Boto pode estar selecionado ou no
JRadioButton(Icon icon, boolean selected)Cria um boto que possui um inicialmente somente um cone
e que pode estar selecionado ou no
Programao Orientada a Objetos
Flvio de Oliveira Silva
278
139
Mtodos Principais
public void setSelected(boolean b) Altera o
estado selecionado ou no sem no entanto disparar nenhum
evento
public boolean isSelected() Verifica se o boto
est ou no selecionado
Eventos Principais
ActionListener;ComponentListener;
FocusListener; ItemListener (normalmente
utilizado)
Programao Orientada a Objetos
Flvio de Oliveira Silva
279
INTERFACE
GRFICA - JComboBox
Construtores principais
JComboBox()- Cria um combo box, com uma lista vazia.
JComboBox(Object[] list)- Cria um ComboBox, onde
280
140
INTERFACE
GRFICA - JComboBox
Mtodos principais
public void setSelectedIndex(int anIndex)
281
Eventos principais
ActionListener;ItemListener
ActionListener Disparado quando feita um
interao com a lista de itens ou ento quando < ENTER>
pressionado em um combo editvel.
public void addActionListener(ActionListener l)
282
141
283
JComboBox Exemplo
284
142
JComboBox Exemplo
285
INTERFACE
GRFICA - JList
Construtores principais
JList()- Cria um lista de seleo vazia.
JList(ListModel dataModel)- Cria uma lista onde os
elementos esto contidos em um objeto que implementa a
interface ListModel. Um exemplo a classe
DefaultListModel. Este construtor deve ser utilizado
286
143
Mtodos principais
public int getSelectedIndex()- Retorna o ndice o
primeiro elemento selecionado. Caso nenhum elemento
esteja selecionado retorna 1.
public int[] getSelectedIndices()- Retorna um
vetor com o nmero dos ndices de todos os elementos
selecionados
Programao Orientada a Objetos
Flvio de Oliveira Silva
287
atualmente selecionado.
public void setSelectionMode(int
selectionMode)- Ajusta o modo de seleo da lista.
Este modo de seleo pode ser: SINGLE_SELECTION (apenas
um item por vez; SINGLE_INTERVAL_SELECTION (Um
intervalo com vrios itens pode ser selecionado)
MULTIPLE_INTERVAL_SELECTION (Vrios intervalos com
vrios itens podem ser selecionados).
Programao Orientada a Objetos
Flvio de Oliveira Silva
288
144
INTERFACE
GRFICA - JList
Eventos Principais
ListSelectionListener Ao utilizar esta interface a lista
ser notificada cada vezv que ouver uma alterao nos itens
selecionados na lista
public void addListSelectionListener(
ListSelectionListener listener)
MouseListener Permite que o componente seja
notificado sempre que eventos de
Mouse (clique; etc.) ocorrem sobre elementos da lista.
public void addMouseListener(MouseListener l)
289
290
145
INTERFACE
GRFICA - JTextArea
Construtores principais
JTextArea()- Cria uma rea de texto
JTextArea(String text, int rows, int
columns)- Cria uma rea de texto que inicializada com a
Mtodos principais
public void setFont(Font f)- Ajusta a fonte de texto
que ser utilizada para mostrar o texto.
Programao Orientada a Objetos
Flvio de Oliveira Silva
291
Eventos
MouseListener; KeyListener
public void addMouseListener(MouseListener l)
public void addKeyListener(KeyListener l)
Programao Orientada a Objetos
Flvio de Oliveira Silva
292
146
INTERFACE
GRFICA - JTextArea
293
JTextArea - Exemplo
294
147
JTextArea - Exemplo
}
Programao Orientada a Objetos
Flvio de Oliveira Silva
295
296
148
INTERFACE
GRFICA - Menus
Construtores principais
JMenuBar() Cria uma barra de menu
JMenu(String s) Cria um menu, cujo nome dado pela
string s
JMenuItem(String text, int mnemonic) Cria um
item de menu, cujo nome dado pela string s e utiliza uma
tecla de atalho indicada pelo inteiro mnemonic
Mtodos principais
public JMenu add(JMenu c) Adiciona um menu a um
objeto JMenuBar
public JMenuItem add(JMenuItem menuItem)
Adiciona um item de menu a um objeto da classe JMenu
Programao Orientada a Objetos
Flvio de Oliveira Silva
297
Eventos
Os menus trabalham com eventos da mesma forma que os
Objetos da classe JButton (botes)
ActionListener Aes e cliques em itens de menu. A cada
item do menu (JMenuItem) deve ser associada uma ao
diferente atravs do mtodo:
public void addActionListener(ActionListener l)
298
149
INTERFACE
GRFICA - Menus
Exemplo
JMenu
JMenuItem
JMenuBar
JMenuItem
JMenu
JMenuItem
JMenuItem
...
JMenuItem
299
Menus - Exemplo
300
150
Menus - Exemplo
301
302
151
CRIANDO
UMA APPLET
303
Chama a Applet
mtodo init()
r de ixa a pg
wse
i na
o
r
B
Applet inicia a
mtodo start()
execuo
Incializa informaes
mtodo paint()
Bro
ina
wse
r re-v is i ta a pg
mtodo stop()
mtodo destroy()
304
152
305
A CLASSE JApplet
Mtodos principais
306
153
A CLASSE JApplet
public Container getContentPane() Recupera o
container principal da Applet
public URL getCodeBase() Recupera a URL onde a
applet est sendo executada, este mtodo pode ser utilizado
para carregar arquivos, de imagens, por exemplo.
Image image = getImage(getCodeBase(), "imgDir/ a.gif");
public void showStatus(String msg) Permite
mostrar na barra de status do nagevador uma mensagem de
texto.
public AudioClip getAudioClip(URL url, String
name) Retorna um objeto AudioClip(arquivo de som) que
pode pode ser executado. O arquivo se encontra na URL
especificada e possui o nome indicado pela String.
Programao Orientada a Objetos
Flvio de Oliveira Silva
307
A CLASSE JApplet
public String getParameter(String name)
Retorna uma string que contm o valor de um parmetro que
foi passado para a applet atravs do cdigo HTML. O nome do
parmetro deve informado para o mtodo.
public Image getImage(URL url, String name)
Retorna um objeto do tipo Image que poder ser visualizado
na tela. O argumento URL equivale ao endereo do arquivo e
o argumento String representa seu nome.
308
154
309
310
155
311
import java.applet.Applet;
import java.awt.Graphics;
public class AppletApp extends Applet{
public void paint (Graphics g){
g.drawString("AppletApp - derived from
Applet class",25,25);
}
}
//Utilizando a classe JApplet (Swing) como base
import javax.swing.JApplet;
import java.awt.Graphics;
public class JAppletApp extends JApplet{
public void paint (Graphics g){
g.drawString("JAppletApp - derived from
JApplet class",25,25);
}
Programao Orientada a Objetos
}
Flvio de Oliveira Silva
312
156
import javax.swing.*;
import java.awt.*;
import java.net.*;
public class AppletVeiculo extends JApplet {
private int iPasso;
private final String sPasso= " Passo ";
private final String sMsg = "Executando
mtodo ";
private JPanel pnlBackGround;
private Container c;
String sMessage;
//continua...
313
314
157
315
c.setLayout(new BorderLayout());
//Ajusta a cor do Painel
pnlBackGround.setBackground(Color.RED);
//adiciona painel ao container
c.add(pnlBackGround,BorderLayout.CENTER);
}
public void paint(){
sMessage = sMsg+" PAINT: "+sPasso + iPasso;
this.showStatus(sMessage);
System.out.println(sMessage);
iPasso++;
}
//continua...
Programao Orientada a Objetos
Flvio de Oliveira Silva
316
158
317
JAVA JDBC
318
159
JAVA
JDBC
COMO FUNCIONA
319
JAVA
JDBC
1.
2.
320
160
4.
321
322
161
323
324
162
325
326
163
327
328
164
...
final String sBdName = "jdbc:odbc:JdbcDatasource";
protected Connection connection;
final String sUserName = "anonymous";
final String sPassword = "guest";
//Cria a conexo com o banco de dados
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
connection = DriverManager.getConnection
(sBdName, sUserName, sPassword);
}
catch (ClassNotFoundException clex){
...
}
Programao Orientada a Objetos
Flvio de Oliveira Silva
329
330
165
...
//Cria um comando SQL
Statement statement;
//Cria um ResultSet
ResultSet resultset;
try{
statement = connection.createStatement();
resultset = statement.executeQuery(sSqlCommand);
//displayResultSet(resultset);
statement.close();
}
catch (SQLException sqlex){
...
}
Programao Orientada a Objetos
Flvio de Oliveira Silva
331
332
166
333
334
167
335
...
//coloca o cursor no primeiro registro
boolean moreRecords;
//Como inicialmente o cursor esta antes da
//primeira linha, ento deve ser movido,
//inicialmente para a primeira
moreRecords = rs.next();
if (!moreRecords){
JOptionPane.showMessageDialog(null,"Fim dos
registros");
return;
}
//Vetor que ir conter campos(colunas)e as linhas
Vector colunas = new Vector();
Vector linhas = new Vector();
Programao Orientada a Objetos
Flvio de Oliveira Silva
336
168
//continua...
Vector linha;
try{
//obtem o nome dos campos da tabela
ResultSetMetaData rsmd = rs.getMetaData();
for (int i = 1; i <= rsmd.getColumnCount();
++i){
colunas.addElement(rsmd.getColumnName(i));
}
//obtem os dados de cada campo
do {
linha = getRowData(rs, rsmd);
linhas.addElement(linha);
} while (rs.next());
Programao Orientada a Objetos
Flvio de Oliveira Silva
337
JDBC
Exemplo: Passo 5
//continua...
//Adiciona tabela ao JFrame
table = new JTable(linhas,colunas);
JScrollPane scrollTable = new
JScrollPane(table);
getContentPane().add(scrollTable,
BorderLayout.CENTER);
//Reposiona os componentes no container
validate();
}
catch (SQLException sqlex){
JOptionPane.showMessageDialog(null,
sqlex.getMessage());
}
Programao Orientada a Objetos
Flvio de Oliveira Silva
338
169
339
JDBC
Exemplo: Passo 5
case Types.DOUBLE:
linhaAtual.addElement(newDouble(
rs.getDouble()));
break;
default:
JOptionPane.showMessageDialog(null,"Tipo
no suportado"+ rsmd.getColumnTypeName(i));
break;
}
}
return linhaAtual;
}
Programao Orientada a Objetos
Flvio de Oliveira Silva
340
170
341
171