Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Complexidade
Confiabilidade
Capacidade de Projeto
Flexibilidade
Velocidade de desenvolvimento
Facilidade de manuteno
Orientao a Objetos
Evoluo tecnolgica
Distribuio de processamento
Tecnologia cliente- servidor
Internet
Java/ Applet
Aplicaes Web
Unificao das metodologias OO
Linguagens de Programao - Simula, Smalltalk, C, C++
Inteligncia Artificial
Banco de Dados - pesquisa em modelos de dados semnticos
O termo orientao a objetos significa organizar o mundo real como uma coleo
de objetos. Dos objetos nos interessa a sua estrutura de dados e um conjunto de
operaes que manipulam estes dados. Os objetos, a sua estrutura de dados e o
conjunto de operaes so selecionados de acordo com objetivos bem estabelecidos.
Aumenta(raio)
Raio
X
Y
Move(x,y)
mostra()
CalculaArea()
x,y: coordenadas do centro
do circulo
um circulo-objeto
Objeto - Estado e Comportamento
Mensagens
Objetos interagem e comunicam-se atravs de
mensagens
Mtodos
As mensagens identificam os mtodos a serem
executados no objeto receptor.
Para invocar um mtodo de um objeto, deve- se enviar uma mensagem para este
objeto. Para enviar uma mensagem deve- se:
identificar o objeto que receber a mensagem
identificar o mtodo que o objeto deve executar
passar os argumentos requeridos pelo mtodo
circulo.aumenta(r)
8
Abstrao
Focalizar o essencial, ignorar
propriedades acidentais.
A abstrao deve ser sempre feita
com algum objetivo, porque este
determina o que e o que no
importante.
Classes
Uma classe descreve um conjunto de objetos com:
propriedades semelhantes
comportamentos semelhantes
relacionamentos comuns com outros objetos
Uma classe uma fabrica de objetos
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
Move(x,y)
Mostra()
Aumenta(r)
class Principal {
public static void main (String args []){
Circulo umcirc;
umcirc = new Circulo (12,0,0); // instanciao de Circulo
umcirc. mostra();
umcirc. move( 2,3);
umcirc. mostra();
}
}
Herana
10
Uma classe derivada herda a estrutura de dados e mtodos de sua classe base, mas
pode seletivamente:
Uma classe base proporciona a funcionalidade que comum a todas as suas classes
derivadas, enquanto que uma classe derivada proporciona a funcionalidade adicional que
especializa seu comportamento.
Circulo
CirculoColorido
Raio
Cor
X
Mostra()
Y
Mudacor(c)
Mostra()
Herana - Exemplo
A classe CirculoColorido herda de Circulo os atributos raio, x e y, define um novo atributo
cor, redefine o mtodo mostra() e implementa o mtodo mudaCor( c).
Herana em Java
public class Circulo {.....}
public class CirculoColorido extends Circulo {
public string cor;
public void mostra() {.....}
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
11
Tudo um objeto
A computao executada por objetos que se comunicam
Todo objeto uma instncia de uma classe
A classe o repositrio do comportamento associado com um objeto
Classes so organizadas em uma estrutura de rvore com uma nica raiz
Reutilizao de Software
Maior confiabilidade
Compartilhamento de cdigo
Consistncia de interface
Componentes de software
Polimorfismo
12
Redefinio da operao de
desenhar;
Mesmo nome (desenhar) para 3
funes.
For x in X do x desenhar();
13
Sistema de Arquitetura
Camada de dados: Essa camada usada pela camada comercial lgica para
manter dados permanentemente. Normalmente, essa camada consiste em um ou mais
banco de dados, onde os dados so armazenados.
14
Projeto da Nasa que esta colando Java nos pequenos robs enviados para marte.
Todos os grandes banco de dados DB2, Oracle, e Sybase possuem suporte para
acesso direto aos bancos de dados usando a tecnologia Java.
15
O padro GSM de telefonia celular usada pela TIM usa um pequeno carto com o
nome de SIM card. Apesar de seu tamanho diminuto sua versatilidade no tem fim.
possvel configurar o menu do aparelho e incluir pequenos programas baseados em Java
para serem acoplados ao telefone.
O telefone Nokia 3650 possui capacidade para executar programas Java para
gerenciamento de contatos, compromissos e calculadora e bloco de notas.
A principal diferena entre Java e .NET que o J2EE controlado pela indstria e
no por um fornecedor, como o .NET. Eles trabalham apenas no mundo Windows,
enquanto o J2EE facilita a integrao e mantm a integridade do que a companhia possui.
Alem disso, Java completa o modelo web de aplicaes e abre o leque para uso em
outros dispositivos.
78% dos executivos vem Java como a melhor plataforma para web services.
16
Servlet: classe Java que pode ser automaticamente carregada em e executada por
um servidor especial. Esse servidor web cliente de servlet chamado de um
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
A tecnologia Servlet
A histria da programao em Java do lado servidor comeou com servlet. A sun
introduziu os servlets em 1996 como pequenos aplicativos baseados em Java, para
acrescentar contedo dinmico aos aplicativos web.
A tecnologia Servlet base do desenvolvimento de aplicativo web usando a linguagem
de programao Java. Ela uma das tecnologias Java mais importantes, e a tecnologia
subjacente para uma outra tecnologia Java popular para desenvolvimento de aplicativo:
JavaServer Pages (JSP).
Servlets interagem com clientes por meio de um modelo solicitao-resposta
baseado em HTTP. Porque a tecnologia servlet trabalha sobre HTTP, um contentor
servlet precisa suportar HTTP como o protocolo para solicitaes de cliente e respostas
de servidor. Entretanto, um contentor servlet pode suportar protocolos semelhantes, tal
como HTTPS (HTTP sobre SSL) para transaes seguras.
Em um aplicativo JSP, o contentor servlet substitudo por um contentor JSP.
Ambos os contentores, servlet e JSP, com freqncia so referenciados como contentor
web.
A tecnologia JSP
JavaServer Pages (JSP) uma outra tecnologia Java para desenvolver
aplicativos web. JSP foi lanada quando a tecnologia de servlet tinha atingindo
popularidade. JSP no se destina a substituir servlet. Na verdade, JSP uma extenso
da tecnologia de servlet, e prtica comum usar ambas, servlet e pginas JSP nos
mesmos aplicativos web. JSP usa as mesmas tcnicas que aquelas encontradas em
programao servlet.
Em algumas aplicaes programar usando servlets torna-se um incmodo,
especialmente quando voc precisa enviar uma longa pgina HTML que inclui pouco
cdigo, cada tag HTML precisa ser embutida em uma string e enviada usando o mtodo
17
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
Instalando a J2SE
Necessitamos obrigatoriamente ter a J2SE, que o ambiente Java propriamente
dito, pois ela que ir compilar nosso cdigo fonte. Depois de conseguir o ambiente
Java localize o arquivo j2sdk-1_4_0-win e siga as janelas de instalao. Siga a instalao
padro.
Outra opo adquirir uma cpia do Software Development Kit (SDK) da Sun. O
SDK grtis e executa na maioria das plataformas mais comuns. Para baixar o SDK o
endereo : http://java.sun.com.
A Sun desenvolveu Java para executar em qualquer mquina com os seguintes
sistemas operacionais: Windows 9X, Windows 2000, Windows NT, Solaris, Unix, A IBM
tem uma verso para AIX (verso UNIX para IBM), OS/400 e o OS/390 que um sistema
operacional para mainframes.
Voc vai precisar de aproximadamente 20MB, para copiar o SDK. O instalador
expandir-se- em um jogo de arquivos. Assim voc deve reservar 60MB de espao em
disco. Se resolver instalar a documentao mais 30MB ser necessrio.
A ferramenta mais importante no JDK o javac, o compilador Java que copiado
na pasta bin, javac traduz o cdigo-fonte com as instrues para Java Virtual Machine
(JVM).
Uma vez que voc tenha usado o compilador para fazer um arquivo.class, voc
processar seu programa no JVM. Para a maior parte do seu trabalho com o JDK, voc
ir executar aplicaes usando o iniciador de aplicaes Java, chamado java. Quando
voc digitar java minhaclasse o iniciador examina a classe chamada minhaclasse e
executa o cdigo.
Java x Javascript:
JavaScript uma linguagem de script para a web que foi criada pela Netscape, e Java
uma linguagem de programao que foi criada pela Sun. O nome JavaSript foi adotado
para aproveitar o marketing da Sun. O original era o LiveScript.
Alm da diferena dos criadores, Java e Javascript so linguagens diferentes, tanto
18
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
Tipo
Int
Nome
C
19
Acontecer que a classe B, por pertencer ao mesmo pacote, ter acesso aos
atributos c e b, enquanto que a classe C ter acesso apenas ao atributo c por pertencer a
um pacote diferente. Para o atributo a, seu acesso restrito apenas classe A.
Utilizei-me propositalmente de mesmos nomes de classes e atributos para que
voc v logo se acostumando que Java totalmente CASE-SENSITIVE.
Java como Linguagem de Programao
A linguagem de programao Java de alto nvel com as seguintes caractersticas:
Simples
Compilada
Robusta
Multithread
Orientada a Objetos
Interpretada
Portvel
Alto desempenho
Distribuda
Segura
Arquitetura Neutra
Dinmica
20
Com isso um programa Java um conjunto de instrues para a JVM, dessa forma o
mesmo independente de plataforma, pois basta que haja uma implementao de
mquina virtual para a plataforma a ser utilizada.
2.
21
Descrio
Compilador
Executor de Programas
Gerador de documentao da API
Visualizador de applet
Debuger
Jbuilder
O Jbuilder - ambiente da Borland para o aprendizado de programao Java e
desenvolvimento visual de aplicaes Java para uso no comercial em plataformas
Windows, Linux, Solaris e Mac OS - facilita o aprendizado de programao Java com
funes integradas de editor, depurador, compiladores, projetistas visuais, wizards,
aplicaes modelo, tutoriais e suporte aos padres Java. Ele tambm inclui uma licena
para desenvolvimento no comercial e proporciona migrao direta ao Jbuilder
Professional ou ao Jbuilder Enterprise para desenvolvimento e distribuio de aplicaes
comerciais (http://www.borland.com/jbuilder/personal/) 53Mb
Estrutura de um Programa Java
Todo programa Java uma classe e mesmo possuindo trs possveis modalidades
para programas Java (Applications, Applets e Servlets) a estrutura bsica sempre a
mesma: "uma classe".
Um Programa Java organizado em arquivos texto com a extenso .java e cada
arquivo contem apenas uma classe pblica. O nome do arquivo da classe Java deve
possuir exatamente o mesmo nome da classe pblica, pois a mquina virtual procura o
arquivo da classe atravs do nome da classe.
Objetos Distribudos em Java
O sistema RMI (Remote Method Invocation) permite que um objeto rodando em
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
23
25
28
EXPLICAO DO CDIGO
01 - // Programa..: Mensagem.Java
02 - // Autor.........: Grupo iPED
03 - // Descrio.: Imprime uma mensagem em uma caixa de dialogo grfica
04 - // Data.......: xx/xx/xxxx
Indica que o restante da linha um comentrio. Os programadores inserem
comentrios para documentar os programas e melhorar a legibilidade do programa.
Os comentrios tambm ajudam outras pessoas a entenderem seu programa. Um
comentrio ignorado pelo compilador.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
29
09 -
JOptionPane.showMessageDialog(
null,"Bem Vindo Ao Java!");
A classe JOptionPane permite que voc exiba facilmente uma caixa de dilogo
contendo informaes.
Esta linha do programa Indica uma chamada para o mtodo
showMessageDialog da classe JOptionPane. As informaes entre parnteses
so os argumentos passados para o mtodo.
O propsito do primeiro argumento especificar a janela-pai para a caixa de
dialogo, a janela pai ajuda a determinar onde a caixa de dialogo ser exibida, se a
janela-pai for especificada como null ser exibida no centro da tela. Quando um
aplicativo no possui janela-pai o argumento dever ser sempre null, ou ser
30
System.exit(0);
Essa linha exigida em aplicativos com interface grfica para terminar o aplicativo.
Chamamos a classe system que executa o mtodo exit. O argumento zero indica
que o aplicativo terminou com sucesso. A classe system parte do pacote
Java.lang, que importado automaticamente, por isto no referenciado no inicio
do programa.
Nosso prximo aplicativo l dois inteiros digitados por um usurio no teclado, computa a
soma desses valores e exibe o resultado. Quando o usurio digita cada inteiro e
pressiona a tecla enter ou o boto OK, o inteiro lido no programa e adicionado ao total.
Esse programa utiliza outra caixa de dilogo predefinida da classe JOptionPane,
chamada de dilogo de entrada, que permite ao usurio inserir um valor para utilizao no
programa. O programa tambm utiliza um dilogo de mensagem para exibir os resultados
da adio.
Algoritmo do programa
Leia primNumero
Leia secNumero
31
import javax.swing.JOptionPane;
23456789-
14-
151617-
JOptionPane.showMessageDialog(
null, "O numero e: " + soma, "Resultado",
JOptionPane.PLAIN_MESSAGE );
18System.exit( 0 );
19}
20- }
No pode ser alterado neste objeto
32
EXPLICAO DO CDIGO
// Programa..: Adicao.Java
// Autor.........: Edison Pires
// Descrio.: O objetivo deste programa a entrada de dois nmeros
//
inteiros, que sero somados, o resultado ser exibido
//
em uma janela com JOptionPane
// Data.......: 29/01/2003
As linhas acima so comentrios e so ignoradas pelo interpretador, serve apenas
para documentar o programa.
1- import javax.swing.JOptionPane;
Especifica para o compilador onde encontrar a classe JoptionPane para utilizar
neste programa.
As instrues import ajudam o compilador a localizar as classes que voc
pretende utilizar.
Esta linha diz ao compilador para carregar a classe JOptionPane que esta no
pacote javax.swing.
2- public class Adicao {
Inicia as definies da classe Adio. O nome de arquivo para esta classe deve ser
Adio.java, todas as definies de classe iniciam com uma chave esquerda de
abertura e terminam com uma chave de fechamento (linha 20)
3- public static void main( String args[] )
Os aplicativos Java automaticamente comeam executando em main. Os
parnteses depois de main indicam que um bloco de construo de programa
chamado mtodo.
Se no colocarmos o main o interpretador Java no executar o aplicativo.
Os mtodos realizam tarefas e retornam informaes, a palavra void indica
que esse mtodo realizar uma tarefa (exibindo uma linha de texto neste
programa), mas no retornar nenhuma informao quando completar sua tarefa.
Quando escrevemos uma aplicao Java, podemos passar argumentos. O
ambiente Java coloca cada argumento em uma string e ento passa o vetor de
strings para o mtodo main(). Usamos para passar argumentos o vetor args[], em
nosso programa no passaremos nenhum argumento, portanto args um vetor
vazio.
Uma varivel de classe static define que todos os objetos da classe compartilham
a mesma parte dos dados, desta forma possvel se economizar memria.
56789-
String primNumero,
secNumero;
int numero1,
numero2,
soma;
Declarao das variveis.
As variveis devem ser declaradas com seu nome e seu tipo antes de serem
usadas.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
33
10-
1213-
14-
151617-
JOptionPane.showMessageDialog(
null, "O numero e: " + soma, "Resultado",
JOptionPane.PLAIN_MESSAGE );
Utiliza o mtodo showMessageDialog do objeto JoptionPane para exibir o
resultado da adio.
34
Operador aritmtico
Expresso Java
+
f+7
p-c
*
b*m
/
x/y
Expresso
p-
x/
Operador de
igualdade ou
relacional em Java
Exemplo de
condio em Java
Significado da
condio em Java
==
= (exclamao e
igual)
>
<
>=
X == Y
X = Y
X igual a Y
X no igual a Y
X>Y
X<Y
X >= Y
<=
X <= Y
X maior que Y
X menor que Y
X maior que ou igual
aY
X menor que ou
igual a Y
36
Leia primNumero
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
Leia secNumero
Leia terNumero
// Programa..: Media.Java
// Autor.........: Edison Pires
// Descrio.: O objetivo deste programa entrada de trs
nmeros
//
decimais, para ser calculada a mdia dos
mesmos
// Data.......: 29/01/2003
1-
import javax.swing.JOptionPane;
37
EXPLICAO DO CDIGO
9-
double numero1,
Neste programa possvel digitar um nmero real, ou seja, com casas decimais,
tambm chamados de nmero de ponto flutuante.
Para armazenar nmeros de ponto flutuante na memria usamos o tipo de dados
primitivo double (double utiliza 15 dgitos significativos)
A estrutura de Seleo IF
A estrutura IF chamada de estrutura de seleo nica, uma vez que seleciona
ou ignora uma nica ao.
utilizada para escolher entre cursos de ao alternativos em um programa.
Se a condio satisfeita tudo o que esta dentro do IF executado, em seguida o
programa segue o fluxo de execuo, se a condio no for satisfeita toda a condio IF
ignorada e programa segue aps a instruo.
Recue as instrues de corpo de uma estrutura if/else.
38
Comandos;
Comandos;
Comandos;
SENO
Sendo a condio falsa o bloco de
comandos dentro do else que ser
executado.
}
else {
Comandos;
Comandos;
Comandos;
}
A estrutura de Seleo IF/ELSE
A estrutura de seleo IF/ELSE permite ao programador especificar que uma ao
diferente ser realizada quando a condio for verdadeira ou falsa.
if ( condio ) {
Comandos;
Comandos;
Comandos;
}
else {
Comandos;
Comandos;
Comandos;
}
Nas estruturas IF/ELSE podemos usar para testar as expresses, operadores relacionais
ou de igualdades:
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
39
==
Igual
!=
Diferente
>
Maior
<
Menor
>=
Maior e Igual
<=
Menor e
Igual
40
seguida
usurio
solicitado
entrar
com
notas.
Aps a digitao de todas as notas pelos usurios, o aplicativo efetua o calculo e mostra o
resultado.
41
escolha = 1;
15 -
while ( escolha !=
16 17 -
) {
total = 0;
notasLidas = 1;
18 quantidade = JOptionPane.showInputDialog("Qual a
nmero de alunos? <entre
um nmero inteiro>:
);
20
21
um
22
23
24
25
19 alunos = Double.parseDouble(quantidade);
26 -
27 "0.00" );
28 42
JOptionPane.showMessageDialog(null,exibir,
"Mdia da
Classe",JOptionPane.INFORMATION_MESSAGE );
30 OUTRO CALCULO?
continua = JOptionPane.showInputDialog("EFETUA
<0=sair / 1=Continuar>);
escolha = Integer.parseInt( continua );
//Final do while escolha
31 32 -
33 -
System.exit( 0 );
34 -
43
19 - alunos = Double.parseDouble(quantidade);
A classe Double com o mtodo parseDouble converte seu argumento string
em um nmero REAL, ou seja, um nmero com casas decimais.
O nmero REAL retornado por Double.parseDouble atribudo a varivel
quantidade.
Esta converso necessria porque toda entrada em uma janela JOptionPane
44
atribuda
a
varivel
nota.
45
Exibe o contedo da varivel media formatada para exibir nmeros com duas
casas aps a virgula.
29 - JOptionPane.showMessageDialog(null,exibir,
"Mdia da Classe",JOptionPane.INFORMATION_MESSAGE );
Exibe uma mensagem na caixa de dialogo JoptionPane, usando o mtodo
showMessageDialog.
Para este programa vamos criar um atalho na rea de trabalho do Windows, pois o
usurio no tendo conhecimento do Java no vai saber como executar o programa, siga
os seguintes passos:
Vamos criar um arquivo de lote para chamar e executor Java e interpretar a
classe. Para criar este arquivo podemos usar qualquer editor de texto.
MediaClasse.bat
Cls
java mediaClasse
exit
Em seguida vamos incluir o atalho na rea de trabalho:
Clique no boto direito do mouse e escolha criar / novo atalho.
Na caixa Criar Atalho procure o arquivo com o nome: mediaClasse.bat
Clique no boto Avanar.
Digite um Nome para o atalho.
Escolha um cone para o atalho.
46
Classe salarioDecisao.java
01 - /* PROGRAMA.: salarioDecisao.java
02 AUTOR.........: Edison Pires
03 DESCRIO.: Efetua o calculo do salrio a receber tomando
uma deciso a partir do 04 - indice de INSS
05 - */
06 - import javax.swing.JOptionPane;
07 - import java.text.DecimalFormat;
08 - public class salarioDecisao {
09 public static void main( String args[] )
10 {
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
47
do
{
16 17 -
inss=0;
sliq=0;
18 -
input_shora = JOptionPane.showInputDialog(
"Quanto o funcionario ganha por
hora?");
19 -
input_htrab = JOptionPane.showInputDialog(
"Quantas horas o funcionario
trabalhou no mes?");
20 21 22 -
shora=Double.parseDouble( input_shora );
htrab=Double.parseDouble( input_htrab );
sbruto=shora*htrab;
23 24 25 -
26 27 28 -
29
30
31
32
JOptionPane.showMessageDialog(null,output,
"Resultado dos
calculos",JOptionPane.INFORMATION_MESSAGE );
38 resposta =
JOptionPane.showInputDialog("EFETUA OUTRO CALCULO S/N?
48
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
<1=S> ");
resp = Integer.parseInt( resposta );
39 40 );
}while( resp == 1
41 42 43 - }
System.exit( 0 );
}
valorTotal =
49
1- // Programa...:Investe.java
2- // Autor.........: Edison Pires
3- // Data.......: 30/01/2003
4- // Descrio..:Programa que calculo o rendimento de um valor
investido por dez anos
567-
import java.text.DecimalFormat;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
input_vrInvestido = JOptionPane.showInputDialog(
"Entre com o valor a investir:
15-
input_taxaJuros = JOptionPane.showInputDialog(
"Entre com a taxa de juros
anual (no formato 0.00): ");
16-
input_numeroAnos = JOptionPane.showInputDialog(
"Investimento por quantos anos?
: ");
17vrInvestido = Double.parseDouble(
input_vrInvestido );
18taxaJuros = Double.parseDouble( input_taxaJuros
);
19numeroAnos = Integer.parseInt( input_numeroAnos);
2050
JOptionPane.showMessageDialog(
null,
outputTextArea, "Resultado da Aplicacao",
JOptionPane.INFORMATION_MESSAGE );
282930- }
System.exit( 0 );
}
51
52
1- // Programa: Aplica.Java
2- // Autor.......: Edison Pires
3- //Descrio: Programa para calcular aplicaes financeira
usando SWITCH/CASE
45-
import javax.swing.JOptionPane;
import java.text.DecimalFormat;
rendimento = 0;
13input_valor = JOptionPane.showInputDialog("Valor
a ser investido:");
14valor = Double.parseDouble( input_valor );
15input_tipo
de Investimento"+" \n\n"+
= JOptionPane.showInputDialog("Tipo
Aes"+"\n\n"+
"1-
"2- Dolar"+"\n\n"+
"3- Renda Fixa"+"\n\n"+
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
53
17switch( escolha ) {
18case 1:
19rendimento=(valor*13)/100;
20break;
21case 2:
22rendimento=(valor*10)/100;
23break;
24case 3:
25rendimento=(valor*7)/100;
26break;
27case 4:
28rendimento=(valor*3)/100;
29break;
30case 5:
31rendimento=(valor*5)/100;
32break;
33default:
34JOptionPane.showMessageDialog(null,
"Valor escolhido invalido!!");
35System.exit( 0 );
36}
37if( valor < 500)
38{
39JOptionPane.showMessageDialog(null, "No
possvel investir menos que R$ 500,00",
"ERRO",
JOptionPane.INFORMATION_MESSAGE );
40System.exit( 0 );
41}
42);
43-
A maioria dos mtodos tem uma lista de parmetros que fornecem o meio de
passar informaes entre mtodos via chamada de mtodos. Os parmetros de um
mtodo tambm so variveis locais.
A Java API fornece uma rica coleo de classes e mtodos para realizar
clculos matemticos comuns, manipulao de strings, manipulaes de
caracteres, entrada/sada, verificao de erros e muitas outras operaes teis.
corpo do mtodo
}
Imaginemos uma lmpada. Podemos assumir que uma lmpada pode estar acesa
ou apagada, o que caracteriza um estado lgico, denominado acesa, no qual: acesa =
55
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
// mtodos
public void ligar() {
acesa = true;
}
891011- }
A classe Lmpada modelada tem um atributo lgico acesa, que identifica o estado
atual da lmpada. Alm desse atributo, podemos identificar dois mtodos ligar() e
desligar(), que fazem com que o estado da lmpada seja adequadamente modificado para
verdadeiro e falso, conforme a mensagem enviada ao objeto lmpada.
nomeObjeto.nomeDoMetodo( argumentos);
56
// LampTeste.Java
Ligada.
Desligada.
57
Classe/Objeto
Mtodo
javax.swing
JoptionPane
ShowInputDialog()
Java.lang
(importado
automaticamente
pelo compilador)
javax.swing
javax.swing
Java.lang
(importado
automaticamente
pelo compilador)
Integer
parseInt()
JoptionPane
showMessageDialog()
JTextComponent
JTextArea()
Math
Pow()
Parmetro
Mensagem de
entrada para o
usurio
String a ser
convertida
Mensagem de
sada para o
usurio
Valor, expoente
EXEMPLOS:
Exemplo 1
public class metodoExemplo1 {
public void testaMetodo1()
{
System.out.println ("Metodo Um");
}
58
TC.testaMetodo1( );
TC.testaMetodo2("Programando Metodos com
Java");
}
}
TELA DE SADA
Exemplo 2
Este exemplo j foi feito sem uso de mtodos
import javax.swing.JOptionPane;
public class metodoExemplo2 {
public void soma()
{
String primNumero,secNumero;
int numero1,numero2,soma;
primNumero=JOptionPane.showInputDialog(
"Entre com o primeiro numero inteiro" );
secNumero =JOptionPane.showInputDialog(
"Entre com o segundo numero inteiro" );
numero1 = Integer.parseInt( primNumero );
numero2 = Integer.parseInt( secNumero );
soma = numero1 + numero2;
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
59
);
}
}
Exemplo 3
public class metodoExemplo3 {
public static void main (String args[]) {
metodoExemplo3x TC = new metodoExemplo3x(
);
TC.soma();
}
}
import javax.swing.*;
public class metodoExemplo3x {
String primNumero,secNumero;
int numero1,numero2,soma;
public void soma(){
primNumero=JOptionPane.showInputDialog(
"Entre com o primeiro numero inteiro" );
secNumero =JOptionPane.showInputDialog(
60
Exemplo 4
/* Programa.......: Quadrado.Java
Modificado Por.: Edison Pires
Obs............: Demostra o uso de metodos
*/
import javax.swing.*;
public class Quadrado {
public static void main( String args[] )
{
int resultado;
JTextArea saida = new JTextArea();
for ( int x = 1; x <= 10; x++ ) {
resultado = quad( x );
saida.append("O Quadrado de " + x + " = " + resultado
+ "\n");
}
JOptionPane.showMessageDialog(null,saida,
"Quadrado dos
Nmeros",JOptionPane.INFORMATION_MESSAGE);
}
// Mtodo chamado para calcular o quadrado de numero
public static int quad( int y )
{
return y * y;
}
}
61
SOBRECARGA DE MTODOS
Java permite que vrios mtodos com o mesmo nome sejam definidos, contando
que estes mtodos tenham diferentes conjuntos de parmetros. Isto chamado de
sobrecarga de mtodos.
Quando um mtodo sobrecarregado chamado, o compilador seleciona o mtodo
adequado.
examinando o nmero;
os tipos;
ordem dos argumentos na chamada.
"\n"
"\n"
"\n"
"\n"
"\n"
+
+
+
+
+
63
Uma GUI (Graphical User Interface) um ambiente que oferece uma interface
padronizada mais simples e intuitiva para os usurios.
A linguagem Java oferece capacidades nicas no desenvolvimento de aplicaes
grficas que, sem modificao ou sem precisar realizar uma nova compilao, podem ser
executadas em diferentes ambientes grficos.
Os componentes da Interface Grfica com o usurio, so os elementos
construtivos das interfaces grficas, isto , botes, caixas de entrada de texto, caixas de
lista, caixas de seleo, etc.
O Java oferece uma ampla biblioteca de componentes de interfaces grficas e de
capacidades grficas, na forma de classes pertencentes ao seu pacote Java.awt.
A AWT uma biblioteca que implementa um mecanismo peer-to-peer, isto , cada
classe correspondente a um componente AWT uma casca para acesso aos
componentes nativamente implementados em cada sistema operacional.
As classes da interface de usurio Java fazem seu trabalho atravs dos objetos,
chamados de componentes leves que no se ligam aos objetos iguais do sistema
operacional nativo. Ao contrrio, eles suportam a aparncia de conexo.
Cada JVM implementa as chamadas adequadas para que a funcionalidade
desejada de cada componente seja obtida; sendo assim, a AWT uma interface
padronizada para acesso s diferentes bibliotecas de componentes das diversas
interfaces grficas aceitas pelo Java.
Uma classe chamada Toolkit permite obter informaes sobre o sistema grfico
em uso pela JVM.
A classe AWT do pacote java implementa componentes e facilidades que podem
ser reproduzidos de forma equivalente entre diversas plataformas, garantindo o Maximo
de portabilidade.
ALGUNS COMPONENTES DA AWT
Java.awt.Button
Java.awt.Label
Java.awt.Checkbox
Java.awt.ScrollBar
Java.awt.Container
Java.awt.Text
Teclas de atalho;
Capacidades comuns de tratamento de eventos para casos onde vrios
componentes GUI iniciam as mesmas aes em um programa;
Breve descrio do propsito de um componente, exibido quando o cursor de
mouse posicionado sobre o componente;
E outras diversas;
JFrame
Um JFrame uma janela com uma barra de ttulo e uma borda. A classe JFrame
uma subclasse do java.awt (que uma subclasse de java.awt.Windows). Como tal, um
dos poucos componentes GUI do Swing que no considerado um componente de peso
leve.
O lugar para desenhar chamado de container e derivado da classe
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
65
Abertura;
Fechamento;
Apresentao de cones;
Ativao;
Desativao
// df.Java
// Demonstra como utilizar o componente Frame
0- import javax.swing.*;
1- import java.awt.*;
2- public class df extends JFrame
3- {
4public df()
5{
6setTitle("Demonstrao de uma janela JFrame");
7setLocation(50,50); //coordenadas x e y em pixels
8setSize(320,160);
//coordenadas x e y em pixels
9}
101166
Explicao do cdigo
// df.Java
// Demonstra como utilizar o componente Frame
0- import javax.swing.*;
Importa o pacote javax.swing para utilizao da classe JFrame
1- import java.awt.*;
importa o pacote java.awt para implementar a classe Window e Container
2- public class df extends Jframe
Em Java, a indicao da construo de uma classe pela herana feita juntamente
com sua declarao por meio da palavra reservada extends, seguida do nome da
classe que ser usada como base.
A herana o compartilhamento de atributos e operaes entre classes, com base
num relacionamento hierrquico do tipo pai e filho, ou seja a classe pai tomada
como referncia, contendo definies que podero ser utilizadas nas classes
definidas como filhas.
A classe pai denominada de SUPERCLASSE
A classe filha denominada de SUBCLASSES
3- {
4
public df()
Esta instruo identificada como mtodo construtor.
Mtodos construtores so mtodos especiais, acionados pelo sistema no momento
da criao de um objeto.
O construtor responsvel pela alocao de memria e pelo preparo do
funcionamento do novo objeto.
O mtodo construtor pode definir a interface com o usurio, abrir arquivos, iniciar
comunicao, preparar dispositivos, carregar drives, etc.
Um construtor um mtodo com o mesmo nome da classe.
O construtor invocado automaticamente toda vez que o objeto dessa classe
instanciado.
67
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
56-
789-
10-
1112-
13
1415- }
Nenhum componente exibido, porque criamos uma janela sem contedo. Toda a
funcionalidade de uma janela esta disponvel, herdado da classe Window, que faz parte
do pacote Java.awt.
JLabel
A classe JLabel, conhecido tambm como rtulo de texto ou apenas rtulo,
destinado exibio de texto dentro de um componente do tipo container. JLabel uma
subclasse de JComponent que pertence ao pacote javax.swing.
Os rtulos exibem uma linha de texto que no podem ser editadas pelo usurio.
Exemplo de exibio de rtulos:
68
public rotulo()
{
setTitle("Usando Rtulos na GUI");
1112-
//coluna, linha,
Explicao do Cdigo
3- import java.awt.*;
importa o pacote java.awt para implementar a classe Window e Container
4- import javax.swing.*;
Importa o pacote javax.swing para utilizao da classe JFrame
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
69
8-
public rotulo()
Mtodo construtor chamado de rotulo, mesmo nome da classe que vai
implementar a interface com o usurio.
10-
11
12-
app.setLayout(null);
131415
JTextField
Esta classe oferece uma caixa de texto para exibio e edio de uma linha de
texto.
JButton
Esta classe exibe botes capazes de exibir um texto, uma imagem ou ambos. Um
70
Nmero de dependentes;
renda mensal;
valor do salrio mnimo
Para cada dependente que o contribuinte tiver ser dado um desconto de 5%, este
valor ser descontado aps o calculo para verificar quantos salrios mnimos o
contribuinte recebe.
A interface do nosso aplicativo deve se apresentar da seguinte forma:
71
import
import
import
import
java.awt.*;
java.awt.event.*;
javax.swing.*;
java.text.DecimalFormat;
public Imposto()
{
setTitle("Calculo de Imposto");
Container c = getContentPane();
c.setLayout( new FlowLayout () );
25262728-
2930313233-
343536-
72
37-
setSize(210,280);
//largura, altura
39404142-
if(calculo > 7)
{
imposto=(renda*25)/100;
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
73
Use a tabela abaixo para testar seu aplicativo, se os resultados exibidos em seu
aplicativo estiverem iguais aos valores da tabela, seu aplicativo esta ok!!!!.
DEP RENDA SAL. MNIMO NDICE A PAGAR
1
359,00
180,00
0
0,00
1
539,00
180,00
10
51,20
1
899,00
180,00
15
128,11
1 1259,00
180,00
20
239,21
1 1261,00
180,00
25
299,49
2
359,00
180,00
0
0,00
2
539,00
180,00
10
48,51
2
899,00
180,00
15
121,36
2 1259,00
180,00
20
226,62
2 1261,00
180,00
25
283,73
Explicando o cdigo de programa de imposto
1- // Imposto.java
2- // Programa para calculo de imposto
Linha de comentrios ignorada pelo compilador
3- import java.awt.*;
Pacote com classes com informaes sobre o sistema grfico oferecido pela
plataforma em que trabalha a JVM.
importa o pacote java.awt para implementar a classe Window e Container
4- import java.awt.event.*;
Pacotes com as classes e as interfaces dos eventos
As interfaces grficas so baseadas em eventos. Quando ocorre uma interao
com o usurio, um evento automaticamente enviado para o programa.
Informaes de eventos so armazenadas em um objeto de uma classe que
estende AWTEvent que est no pacote java.awt.event.
74
JLabel dependenteLabel,rendaLabel,slmLabel,reasultadoLabel;
JTextField dependentesText,rendaText,slmText,resultadoText;
JButton calcula;
Declara uma referencia para cada componente a ser usado no aplicativo
public Imposto()
{
Mtodo construtor responsvel pelo desenho da interface
setTitle("Calculo de Imposto");
Exibe um titulo na barra de ttulos da janela
12131415
16
Container c = getContentPane();
Declara um referencia Container chamada c e atribui a ela o resultado de uma
chamada ao mtodo getContentPane, que retorna uma referencia a container para
anexar componente a interface
c.setLayout( new FlowLayout () );
Para administrar a posio e o tamanho dos componentes no container usamos o
mtodo setLayout.
O gerenciador de layout mais simples o FlowLayout, os componentes so
arranjados em linhas, sendo colocados da esquerda para a direita, na ordem em
que so adicionados
17
c.add( dependenteLabel );
Anexa o objeto Jlabel dependenteslabel no container
18192021-
c.add( dependentesText );
rendaLabel = new JLabel( "Renda Mensal: ");
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
75
c.add( rendaLabel );
rendaText = new JTextField( 10 );
c.add( rendaText );
25262728-
29303132-
33-
c.add( resultadoText );
3435-
36-
c.add( calcula );
37
38-
39404142-
4344454647-
484950-
5152-
calculo = renda/slm;
desconto = ( dependentes*5);
5376
5859606162-
6364656667-
6869707172-
7374757677-
if(calculo > 7)
{
imposto=(renda*25)/100;
imp_pagar=imposto-((imposto*desconto)/100);
}
imposto=0;
imp_pagar=0;
}
787980
81-
8283848586- }
As classes que so utilizadas para criar componentes GUI so parte dos componentes
GUI do Swing do pacote javax.swing.
As GUIs so baseadas em eventos. Algumas interaes comuns so mover o
mouse, clicar o mouse, clicar em um boto, digitar um campo de texto, selecionar um item
de menu, fechar uma janela etc.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
77
- // Aplicativo1A.java
- // Demostra o uso de uma interface com o usurio para entrada
dados
- // No possui funcionalidade, somente implementa a interface
04 - import java.awt.*;
05 - import javax.swing.*;
06 - import java.awt.event.*;
07 - public class Aplicativo1A extends JFrame
08 - {
09 private JLabel lCodigo, lNome, lSobrenome, lSexo,
LTipoCartao;
10 private JTextField Codigo, Nome, Sobrenome;
11 private JRadioButton Masculino, Feminino;
12 private ButtonGroup Sexo;
13 private JCheckBox CD, VS;
14
15
16
17
18
public Aplicativo1A()
{
setTitle("Informaes de Clientes");
Container tela = getContentPane();
tela.setLayout(null);
//Coluna,
tela.add(lNome);
Nome = new JTextField();
Nome.setBounds(95,40,280,20);
tela.add(Nome);
31
32
33
34
35
36
37 38 39 -
40 41 42 -
43 44 45 -
46 47 48 -
49 50 51 -
52 53 54 -
55 56 57 -
VS = new JCheckBox("Visa");
VS.setBounds(130,130,70,20);
tela.add(VS);
58 59 60 -
CD = new JCheckBox("Credicard");
CD.setBounds(200,130,100,20);
tela.add(CD);
61 62 63 -
64 65 66 -
setLocation(100,100);
//Coluna,Linha
setSize(400,200);
//Largura, Altura
}
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
79
if(e.getSource() == VS)
{
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
if(e.getStateChange() ==
{
}
valTipo2 = "Visa";
81
18
19
20
21
43
44
45
46
47
48
49
50
51
52
53
82
tela.add(LTipoCartao);
55
56
57
VS = new JCheckBox("Visa");
VS.setBounds(130,130,70,20);
tela.add(VS);
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
CD = new JCheckBox("Credicard");
CD.setBounds(200,130,100,20);
tela.add(CD);
Instanciao dos objetos caixa de texto.
TipodeCartao escolha = new TipodeCartao();
Instanciao do objeto tipodeCartao referenciado pela palavra escolha este
objeto foi foi definido na classe de mesmo nome linhas 90 a 111
VS.addItemListener(escolha);
CD.addItemListener(escolha);
Quando o usurio clicar na caixa de escolha , gerado um evento que vai
invocar uma instncia da classe TipodeCartao (linha 90 a 111) referenciado por
escolha que a classe encarregada de tratar o evento
setLocation(100,100); //Coluna,Linha
Posiciona um ponto da tela em que a interface deve comear a ser desenhada, as
coordenadas so definidas em pixel
setSize(400,200); //Largura, Altura
Determina o tamanho que a interface (janela) deve ter
}
private class EscolhaSexo implements ItemListener
Esta classe implementa uma ao quando o usurio clicar no boto de radio
{
private String valSexo;
Varivel que vai armazenar masculino ou feminino
public void itemStateChanged( ItemEvent e )
{
O mtodo itemStateChanged chamado quando o usurio clica no boto
de radio, e utiliza e.getSource() para determinar qual componente foi clicado.
Por padro a interface addItemListener implementa o mtodo
itemStateChanged.
O prmetro ItemEvent que passado para o mtodo itemStateChanged,
que trata o estado da seleo
if(e.getSource() == Masculino)
O mtodo getSource() determina qual componente foi clicado
{
if(e.getStateChange() == ItemEvent.SELECTED)
Utiliza o mtodo getStateChange() para determinar o estado do boto
{
valSexo = "Masculino";
JOptionPane.showMessageDialog(Aplicativo1A.this,
"Voce Selecionou a Opo: "+valSexo);
}
83
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
80
81
82
83
84
85
if(e.getSource() == Feminino)
{
if(e.getStateChange() == ItemEvent.SELECTED)
{
valSexo = "Feminino";
JOptionPane.showMessageDialog(Aplicativo1A.this,
"Voce Selecionou a Opo: "+valSexo);
}
}
86
87
88
89
}
}
Note que a janela da aplicao no esta posicionada acima e a esquerda do monitor, Isto
ocorre porque usamos a instruo: setLocation(100,100);
EXERCICIO
Codificar um aplicativo que apresente a seguinte interface:
// Calculadora.java
2345-
import
import
import
import
6789-
101112-
java.awt.*;
java.awt.event.*;
javax.swing.*;
java.text.DecimalFormat;
public Calculadora()
{
setTitle( "Calculadora" );
1314-
Container c = getContentPane();
c.setLayout( new FlowLayout() );
1516-
85
303132-
3334-
35363738-
3940414243-
if ( e.getSource() == somar )
{
prim=Double.parseDouble( primeiro.getText()
seg =Double.parseDouble( segundo.getText()
soma = prim + seg;
s = twoDigits.format( soma );
}
{
if ( e.getSource() == subtrair )
prim=Double.parseDouble( primeiro.getText() );
seg =Double.parseDouble( segundo.getText() );
subtrai = prim - seg;
s = twoDigits.format( subtrai );;
596061}
62- }
resultadoText.setText( s );
}
EXERCICIO
Codificar um aplicativo que apresente a seguinte interface:
06
07
08
09
- public class
private
private
private
10 11 12 -
// Calculadora_1.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.text.DecimalFormat;
Calculadora_1 extends JFrame {
JLabel informa, resultadoLabel, linha;
JTextField primeiro, segundo, resultadoText;
JButton somar, subtrair;
public Calculadora_1()
{
setTitle( "Calculadora" );
13 14 -
Container c = getContentPane();
c.setLayout( new FlowLayout() );
15
16
17
18
19
20
21
22
87
30 31 32 -
33 34 -
35
36
37
38
39
40
41
42
43
resultadoText.setText( s );
} // FIM DO MTODO actionPerformed()
} //FIM DA CLASSE EVENTO BOTO
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
// FIM
PROGRAMA: Calculadora_2.Java
Verso 2.0
/* CLASSE Calculadora_2
* -----------------------------------* Descrio: Demostra a criao de objetos
*
em uma classe para realizar a soma e a
subtrao
* Autor.......: Prof. Edison Pires
*/
import
import
import
import
java.awt.*;
java.awt.event.*;
javax.swing.*;
java.text.DecimalFormat;
89
90
Defina uma classe public, para que ela possa ser utilizada por qualquer
classe criada.
Escolha um nome de pacote e adicione uma instruo package ao
arquivo de cdigo-fonte para definio da classe reutilizvel.
package edp;
// Tempo.Java
// Esta classe mantm a hora no formato 24 horas
package edp;
import java.text.DecimalFormat;
public class Tempo {
private int hora;
private int minuto;
private int segundo;
// 0 - 23
// 0 - 59
// 0 - 59
91
public Tempo()
{
setTempo( 0, 0, 0 );
}
public void setTempo( int h, int m, int s )
{
hora = ( ( h >= 0 && h < 24 ) ? h : 0 );
minuto = ( ( m >= 0 && m < 60 ) ? m : 0 );
segundo = ( ( s >= 0 && s < 60 ) ? s : 0 );
operador condicional chamado
//? um
ternrio.
Compile a classe
Na pasta C:\jdk\jre crie uma pasta chamada classes, voc pode usar
qualquer nome de pasta, mais o Java reconhece como padro pasta
classes na pasta \jdk\jre. Desta forma sua classe ficar disponvel para o
compilador Java.
92
// Tempo_Test.Java
// Classe Tempo_Test invoca a classe Tempo
import edp.Tempo;
import javax.swing.JOptionPane;
public class Tempo_Test {
public static void main( String args[] )
{
String hr, ms, ss;
int h, m, s;
hr =JOptionPane.showInputDialog("Entre com a hora");
ms=JOptionPane.showInputDialog("Entre com os minutos");
ss =JOptionPane.showInputDialog("Entre com os
segundos");
h =Integer.parseInt(hr);
m=Integer.parseInt(ms);
s =Integer.parseInt(ss);
Tempo t = new Tempo();
t.setTempo( h, m, s );
String saida="Horario universal : "+t.horaUniversal();
JOptionPane.showMessageDialog( null, saida,
"Utilizando o pacote com a classe Tempo",
JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 );
}
93
94
nosso objetivo construir uma interface com o usurio idntica a da figura abaixo
esta interface poderia ser utilizada para criar um aplicativo de banco de dados.
95
//MontaTela.java
package BD;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MontaTela extends JPanel
{
private JPanel telaPanel;
private JLabel
lCodigo,lNome,lSobrenome,lCidade,lEndereco,lEstado,lCep,mensagem;
JTextField Sobrenome, Nome, Codigo,
Endereco,Cidade,Estado,Cep;
public MontaTela()
{
setLayout(null);
lCodigo = new JLabel("Cdigo:");
lCodigo.setBounds(15,20,70,20);
add(lCodigo);
Codigo = new JTextField();
Codigo.setBounds(95,20,30,20);
Codigo.setEditable(false);
add(Codigo);
96
coordenada
coordenada
coordenada
coordenada
97
BotaoPainel.java a classe que permite a exibio dos botes, que neste aplicativo no
possuem nenhuma funo, eles apenas so exibidos, note que esta classe tambm um
painel que devera ser apresentado na janela JFrame do programa Aplicativo.java.
Esta classe assim como a classe MontaTela.java fazem parte do pacote BD.
Esta classe utiliza o gerenciador de layout GridLayout que divide o continer em uma
grade de modo que os componentes podem ser colocados nas linhas e colunas, cada
componente de GridLayout tem a mesma largura e altura.
Em nossa classe BotaoPainel.java usamos a seguinte linha: setLayout(new
GridLayout(1,5)); que significar usar o GridLayout para exibir uma linha e cinco colunas,
dentro de cada uma destas colunas que vamos posicionar os nossos componentes
botes.
//BotaoPainel.java
package BD;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class BotaoPainel extends JPanel
{
private JButton consultar, adicionar, alterar, limpar, apagar;
public BotaoPainel(MontaTela s)
{
setLayout(new GridLayout(1,5));
adicionar = new JButton("Adicionar");
add(adicionar);
consultar = new JButton("Consultar");
add(consultar);
alterar = new JButton("Alterar");
add(alterar);
apagar = new JButton("Apagar");
add(apagar);
limpar = new JButton("Limpar");
add(limpar);
}
98
// Aplicativo.java
import BD.BotaoPainel;
import BD.MontaTela;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Aplicativo extends JFrame
{
private MontaTela mostraTela;
private BotaoPainel controles;
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
99
Um applet uma aplicao especial Java que pode ser executada por um browser
(navegador) quando incorporada s pginas HTML por ele exibidas. Applet significa
pequena aplicao ou mini-aplicativo.
Portanto applet um programa Java destinado a operar com os browser,
significando que ser transportado pela internet, tal como documentos HTML.
Considerando sua situao de uso, applets so usualmente construdas para
serem pequenas e, portanto, desempenharem tarefas simples.
Funcionalmente, as applets se apresentam da mesma forma em diferentes
browser ou plataformas, porque os browser considerados compatveis com Java seguem
a especificao da JVM da Sun.
Um applet invocado a partir de uma pgina HTML, portanto sempre que
quisermos executar um applet Java devemos codificar uma pgina HTML e incluir uma
instruo que invoque o applet.
Um applet deve ser apenas compilado, se voc tentar executar um applet com o
interpretador Java, ser retornada uma mensagem de erro. Exemplo de um applet Java:
Digite o cdigo abaixo e em seguida compile, somente compile no mande
executar.
Mensagem.java
import java.applet.*;
import java.awt.*;
public class Mensagem extends Applet
100
101
import
import
import
import
java.awt.*;
java.awt.event.*;
java.applet.*;
java.net.*;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
EXPLICANDO O CDIGO
02 - import java.awt.*;
Esse pacote contm as classes e interfaces exigidas para criar e manipular
interfaces grficas com o usurio. Vrios componentes Swing usam subclasses
deste pacote como a subclasses java.awt.windows (JFrame um exemplo este
componente usa a subclasse windows)
03 - import java.awt.event.*;
Este pacote contm classes e interfaces que permitem tratamento de eventos para
componentes GUI nos pacotes java.awt e javax.swing
04 - import java.applet.*;
Pacote que implementa as funcionalidades para que um applet possa rodar no
browser.
05 - import java.net.*;
A criao de um objeto URL, exige que o pacote java.net seja importado este
pacote contem classes que permitem que os programas consigam se comunicar
via rede. As classes e interfaces do pacote java.net tambm oferecem
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
105
11
13 -
14
15
16 17
18 106
botao.addActionListener( this );
O mtodo addActionListener processa o evento quando o boto acionado
Este mtodo chama o mtodo actionPerformed na linha 21 para processar o
evento
O parmetro this indica que o processador de eventos esta na prpria classe
add( botao );
Adiciona o objeto ao container
urlAlvo = getParameter("urlAlvo");
mensagem = getParameter("mensagem");
O recebimento ou a leitura dos valores fornecidos pela tag <PARAM> realizado
por meio do mtodo getParameter().
setBackground(Color.blue);
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
21 -
23 24 25 -
try
{
showStatus("Transferindo para "+urlAlvo);
Exibe uma mensagem na barra de status, parte inferior a interface
26 27 -
28 29 30 31
32 33 34 - }
}
catch (MalformedURLException a)
{
showStatus("URL Invlido");
Exibe uma mensagem na barra de status, parte inferior a interface
}
}
Tratamento de Erros
Try
{
Tarefa a ser executada
}
catch (MalformedURLException a)
{
Mensagem de erro
}
A criao de um objeto URL exige o uso do bloco try catch, para que seja possvel
sinalizar a ocorrncia de erros.
Este bloco chamado de tratador de excees, uma exceo uma indicao de
que um problema ocorreu durante a execuo do programa.
O tratamento de excees fornecido para permitir aos programas capturar a
tratar erros em vez de deixa-los ocorrer e sofrer as consequencias. O tratamento
de excees projetado para lidar com erros como uma tentativa de dividir por
zero. O tratamento de excees no foi projetado para lidar com eventos como
concluses de E/S de disco, chegadas de mensagens de rede, cliques de mouse,
pressionamento de teclas.
O tratamento de excees utilizado em situaes em que o sistema pode
recuperar-se do mau funcionamento que causa a exceo. O procedimento de
recuperao chamado de tratador de exceo.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
107
Podemos tambm codificar uma pgina para verificar se a transferncia foi realmente feita
com o seguinte cdigo:
108
109
Valmir Costa
Joel Castro
642
411
1800
1400
Campinas
Jundia
111
Aplicaes ou applets Java que desejam acessar bancos de dados devem utilizar a API
JDBC, contida no pacote java.sql.
Por meio da classe DriverManager, a aplicao seleciona o driver de acesso a
banco de dados que ir utilizar. O driver passa a oferecer uma interface padronizada para
a aplicao, implementando em Java o acesso efetivo ao SGBD que se pretende utilizar.
Dessa forma, a troca do banco de dados no implica em mudanas numa
aplicao existente, exceto a seleo de um novo driver. Desta forma, as peas
fundamentais dessa arquitetura so o DriverManager e os drivers de acesso aos SGBD.
DriverManager e URLs
Para utilizarmos qualquer banco de dados, necessrio estabelecermos uma
conexo com este, utilizando, para isso, o driver adequado.
A classe DriverManager utilizada para administrar e selecionar o driver
apropriado para uma conexo com um banco de dados, bem como para efetuar tal
conexo.
Quando uma conexo solicitada, o DriveManager escolhe um driver dentre a lista
de drivers disponveis para efetuar a conexo, dependendo da URL especificada. A API
JDBC utiliza uma estrutura de endereamento semelhante ao esquema das URLs, para
112
113
Clicar no boto adicionar, o que far com que aparea a seguinte tela:
114
115
116
=
/
=
=
117
Banco de Dados Pode ser qualquer um. Note que quando os dados
chegarem aqui estaro peneirados o suficiente para que poucos erros
possam ocorrer.
118
119
Uma vez pronto um ResultSet possvel mover o ponteiro para frente ou para
trs nas linhas atravs de uma chamada ao mtodo Next, de devolve uma varivel do tipo
lgica (True ou False) informando se concluiu com sucesso ou no a passagem da
prxima linha. Ento podemos, navegar dentro do ResultSet.
Nosso objetivo agora escrever uma aplicao. uma aplicao bastante simples
verdade, mais que vai lhe ensinar princpios e conceitos bsicos para se escrever uma
aplicao que manipule dados usando a linguagem Java.
Algumas regras, programas, tratamento de erros e regras de negcios foram
omitidas, pois no teramos tempo para ensinar tudo. Na realidade acesso a dados com o
Java um curso a parte com durao de 40 horas ou mais. Tambm poderamos ter
usado a tcnica de agrupar as classes em pacotes, mais preferi no fazer isto, para que
seja mais fcil de se entender o aplicativo.
importante destacar que aproximadamente 90% das aplicaes em uso nas
empresas, tem como objetivo manipular informaes e que, portanto acessam bancos de
dados
Aproveite bem as aulas, pergunte, tire suas duvidas, pois so raros os professores
que ensinam o conceito de banco de dados quando ensinam linguagens de programao,
meus professores nunca ensinaram, aproveite e pergunte para outras pessoas que esto
aprendendo Java se aprenderam ou vo aprender banco de dados.
O projeto ser executado passo a passo, como sempre com as tradicionais
explicaes, que infelizmente muitos alunos simplesmente nem se preocupam em ler.
Cada programa foi cuidadosamente testado, claro que os testes ocorreram em
um ambiente controlado e organizado, o que nem sempre ocorre em nossos laboratrios,
portanto sempre existe a possibilidade de algo sair do controle.
Outro detalhe muito importante que voc tenha assimilado os conceitos
descritos na apostila do capitulo 11, pois l esto os conceitos bsicos para que voc
saiba o que esta fazendo, procure realmente entender, pois a nossa prova ser
baseada quase que exclusivamente nesta matria.
Nossa aplicao manipula um banco de dados simples com o nome de
Fornecedores de uma s tabela do Microsoft Access que contm uma tabela tambm
com o nome de Fornecedores com a seguinte estrutura:
Colunas
Nome
Cdigo
Nome
Sobrenome
Endereo
Cidade
Estado
120
Tipo
Inteiro longo
Texto
Texto
Texto
Texto
Texto
Tamanho
4
50
50
255
50
20
Texto
20
121
Fornecedores.Java
01 - /* CLASSE Fornecedores
02 - * ---------------------------------03 - * Projeto....: Sistema para Cadastro de Clientes
04 - * Descrio: Este sistema uma aplicao para cadastro de
pessoas,
05 - *
Possui Incluso, alterao, consulta,
apagar
06 - *
pode ser utilizada em outras aplicaes,
voce pode tranforma-la em pacote
07 - * Direitos...: Edison Pires (c) mar - 2004
08 - */
09
10
11
12
import
import
import
import
java.sql.*;
java.awt.*;
java.awt.event.*;
javax.swing.*;
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
123
public Fornecedores()
{
setTitle("CADASTRO DE FORNECEDORES");
Container tela = getContentPane();
saida = new JTextArea(2,4);
tela.setLayout(new BorderLayout());
painelTexto = new JScrollPane(saida);
tela.add(painelTexto, BorderLayout.SOUTH);
27 //==========CONFIGURA A CONEXO DE
BANCO DE DADOS=======
28 try{
29 // se tudo estiver correto este
bloco ser executado
30 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
31 conecta =
DriverManager.getConnection( "jdbc:odbc:Fornecedores" );
32 saida.append("Conexo Efetuada
com Sucesso \n");
33 }
34 catch(ClassNotFoundException
e)
35 {
36 saida.append("No foi possvel
efetuar a conexo, classe no encontrada
\n");
37 }
38 catch(SQLException d)
39 {
40 saida.append("No foi possvel
efetuar a conexo com o banco de dados
\n");
41 }
42 43 44 45 46 47 124
setSize(550,350);
public static void main( String args[] )
{
new Fornecedores().show();
}
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
125
126
}
catch(ClassNotFoundException e)
{
saida.append("No foi possvel efetuar a conexo, classe no
}
38 39 40 -
catch(SQLException d)
{
saida.append("No foi possvel efetuar a conexo com o
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
127
setSize(550,350);
}
public static void main( String args[] )
{
new Fornecedores().show();
}
import
import
import
import
java.awt.*;
java.awt.event.*;
java.sql.*;
javax.swing.*;
129
17 18 -
19 20 -
21 22 -
23 24 -
25
26
27
28
- }
Nosso objetivo agora escrever uma aplicao. uma aplicao bastante simples
verdade, mais que vai lhe ensinar princpios e conceitos bsicos para se escrever uma
aplicao que manipule dados usando a linguagem Java.
Algumas regras, programas, tratamento de erros e regras de negcios foram
omitidas, pois no teramos tempo para ensinar tudo. Na realidade acesso a dados com o
Java um curso a parte com durao de 40 horas ou mais. Tambm poderamos ter
usado a tcnica de agrupar as classes em pacotes, mais preferi no fazer isto, para que
seja mais fcil de se entender o aplicativo.
importante destacar que aproximadamente 90% das aplicaes em uso nas
empresas, tem como objetivo manipular informaes e que, portanto acessam bancos de
dados
Aproveite bem as aulas, pergunte, tire suas duvidas, pois so raros os professores
que ensinam o conceito de banco de dados quando ensinam linguagens de programao,
meus professores nunca ensinaram, aproveite e pergunte para outras pessoas que esto
aprendendo Java se aprenderam ou vo aprender banco de dados.
O projeto ser executado passo a passo, como sempre com as tradicionais
explicaes, que infelizmente muitos alunos simplesmente nem se preocupam em ler.
Cada programa foi cuidadosamente testado, claro que os testes ocorreram em
um ambiente controlado e organizado, o que nem sempre ocorre em nossos laboratrios,
portanto sempre existe a possibilidade de algo sair do controle.
Outro detalhe muito importante que voc tenha assimilado os conceitos
130
Tipo
Cdigo
Nome
Sobrenome
Endereo
Cidade
Estado
Cep
Tamanho
Inteiro longo
Texto
Texto
Texto
Texto
Texto
Texto
4
50
50
255
50
20
20
131
public MontaTela()
{
setLayout(null);
lCodigo = new JLabel("Cdigo:");
lCodigo.setBounds(15,10,70,20);
add(lCodigo);
Codigo = new JTextField();
Codigo.setBounds(95,10,30,20);
Codigo.setEditable(false);
add(Codigo);
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
133
20
21
22
23
24
25
26
27
x,
28
29
30
x,
31
32
33
x,
34
35
36
x,
37
56
do
57
x,
58
59
60
01 - // MontaTela.Java
Indica que o restante da linha um comentrio. Os programadores inserem
comentrios para documentar os programas e melhorar a legibilidade do programa.
Os comentrios tambm ajudam outras pessoas a entenderem seu programa. Um
comentrio ignorado pelo compilador.
02 - import java.awt.*;
Pacote de classes responsveis pela interao entre o componente e a plataforma
local para exibir a manipular o componente, em particular a classe
java.awt.Windows (como JFrame utilizado em exerccios anteriores) que exibem
janelas na tela.
Container tambm uma classe da awt, e as janelas precisam de um Container
para ser exibidas.
03 - import java.awt.event.*;
Este pacote contm classes e interfaces que permitem tratamento de eventos para
componentes GUI nos pacotes java.awt e java.swing.
04 - import javax.swing.*;
Contem os pacotes que ajudam a definir as interfaces grficas. (JTextField,
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
135
08 private JLabel
lCodigo,lNome,lSobrenome,lCidade,lEndereco,lEstado,lCep,mensagem;
Declara as referencias aos objetos Label
09
10
12
13 136
14
15
18 -
Codigo.setEditable(false);
O mtodo setEditable com o parmetro false faz com que no seja possvel editar
a caixa de texto
01 - //BotaoPainel.java
02 - //Esta classe adicona os botes de comando
03
04
05
06
import
import
import
import
java.awt.*;
java.awt.event.*;
java.sql.*;
javax.swing.*;
t));
-
16
17
s,
18
t));
-
19 -
add(adicionar);
add(consultar);
alterar = new JButton("Alterar");
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
137
//alterar.addActionListener(new alteraRegistro(c, s,
22 23 t));
24 -
25
26
27
28
29
add(alterar);
add(apagar);
- }
05 - import java.sql.*;
Disponibiliza classes para uso de scripts SQL, permitindo a execuo de instrues
SQL como: Select, Insert, update, delete etc.
10
138
12
13
setLayout(new GridLayout(1,5));
O gerenciador de layout GridLayout divide o continer em uma grade de modo
que os componentes podem ser colocados nas linhas e colunas. Cada componente
em um GridLayout tem a mesma largura e altura
adicionar = new JButton("Adicionar");
Instancia um novo objeto JButton, inicializando com o string Adicionar e atribui o
objeto a referencia Adicionar.
A palavra reservada new cria um novo objeto
14 -
139
Fornecedores.Java
01 - // Fornecedores.java
02 - // Esta a classe principal do aplicativo e a que vai
executar todas as outras
03
04
05
06
07
08
09
10
11
12
13
14
15 16 17 -
import
import
import
import
java.sql.*;
java.awt.*;
java.awt.event.*;
javax.swing.*;
public Fornecedores()
{
setTitle("CADASTRO DE FORNECEDORES");
03 - import java.sql.*;
04 - import java.awt.*;
05 - import java.awt.event.*;
06 - import javax.swing.*;
Importa as classes necessrias para a execuo do aplicativo, destacamos neste
aplicativo o pacote java.sql que possui as classes que possibilitam tratar a
conexo com o banco de dados e executar as instrues SQL.
07 - public class Fornecedores extends JFrame
Para cada janela de aplicao, usualmente criamos uma nova classe que estende
a classe JFrame e, com isso, obtemos duas facilidades: uma janela para a
apresentao grfica da aplicao e um container para a disposio de outros
componentes. Efetuamos a importao do pacote java.awt e javax.swing,
declaramos o construtor que ajustara o frame ( 15 - public Fornecedores() ) e
adicionamos o mtodo main(), que se torna responsvel pela instanciao e
exibio do Frame por meio do mtodo show() (que pertence classe Windows).
09 10 11 12 13 14
15
private MontaTela
mostraTela;
private JTextArea
saida;
private JScrollPane painelTexto;
private BotaoPainel controles;
private String
url;
private Connection conecta;
Declarao das referncias para os objetos.
public Fornecedores()
Mtodo construtor da classe que possui o mesmo nome da classe, este mtodo
usado para:
Iniciar as referencias aos objetos
Tratar a conexo.
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
141
17
Exibir a interface
setTitle("CADASTRO DE FORNECEDORES");
Exibe um string na barra de ttulos da janela
18
19
20
21
22 23 24
142
tela.setLayout(new BorderLayout());
Atribumos uma referencia para o container que vai exibir a interface na linha 18,
Container tela = getContentPane();
Estamos definindo que vamos usar como layout um BorderLayout().
O gerenciador de layout BorderLayout(), mais sofisticado em relao aos
anteriores, administra a disposio de componentes do container em cinco regies
distintas que so: superior (north), inferior (south), esquerda (west), direita (east) e
central (center). Cada regio s pode ser ocupada por um nico componente.
tela.add(new JScrollPane(mostraTela),BorderLayout.CENTER);
painelTexto = new JScrollPane(saida);
tela.add(painelTexto, BorderLayout.SOUTH);
Adiciona a interface MontaTela (que foi referenciado na linha 09) o objeto
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
25
26
27
28
29
31 catch(ClassNotFoundException e)
32 {
33 saida.append("No foi possvel efetuar a conexo, classe no
encontrada \n");
34 }
35 catch(SQLException d)
36 {
37 saida.append("No foi possvel efetuar a conexo com o
banco de dados \n");
38 }
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
143
40
41
43 44 45 46 -
Classe adicionaRegistro.Java
Codificao
// adicionaRegistro.java
// Classe que adiciona registros
import
import
import
import
java.awt.*;
java.awt.event.*;
java.sql.*;
javax.swing.*;
{
conecta = c;
campos = f;
144
}
else
JOptionPane.showMessageDialog(null,
"PREENCHA OS CAMPOS",
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
145
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
saida.append( sqlex.toString() );
}
}
Classe consultaRegistro.java
Codificao
// consultaRegistro.java
import
import
import
import
java.awt.*;
java.awt.event.*;
java.sql.*;
javax.swing.*;
{
conecta = c;
campos = f;
saida = o;
}
public void actionPerformed( ActionEvent e )
{
try {
if ( !campos.Sobrenome.getText().equals( "" ) ) {
Statement consultaSQL =conecta.createStatement();
JOptionPane.ERROR_MESSAGE);
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
saida.append( sqlex.toString() );
}
}
public void display( ResultSet rs )
{
try {
rs.next();
int registroNumero = rs.getInt( 1 );
if ( registroNumero != 0 ) {
campos.Codigo.setText( String.valueOf(
registroNumero));
campos.Nome.setText( rs.getString( 2 ) );
campos.Sobrenome.setText( rs.getString( 3 ) );
campos.Endereco.setText( rs.getString( 4 ) );
campos.Cidade.setText( rs.getString( 5 ) );
campos.Estado.setText( rs.getString( 6 ) );
campos.Cep.setText( rs.getString( 7 ) );
}
else
saida.append( "Registro no localizado\n" );
}
catch ( SQLException sqlex ) {
JOptionPane.showMessageDialog(null,
"REGISTRO NO ENCONTRADO",
"Ateno",JOptionPane.ERROR_MESSAGE);
}
}
}
Classe alteraRegistro.java
Codificao
// alteraRegistro.java
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
public class alteraRegistro implements ActionListener {
private MontaTela campos;
private JTextArea saida;
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
147
}
Classe apagarRegistro.java
Codificao
// apagarRegistro.java
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
public class apagarRegistro implements ActionListener {
private MontaTela campos;
private JTextArea saida;
private Connection conecta;
public apagarRegistro( Connection c, MontaTela f,JTextArea o )
{
conecta = c;
campos = f;
saida = o;
}
public void actionPerformed( ActionEvent e )
{
try {
Statement apagarSQL = conecta.createStatement();
if ( ! campos.Codigo.getText().equals( "" ) ) {
String query = "DELETE FROM Fornecedores WHERE Cdigo=
"+campos.Codigo.getText();
int result = apagarSQL.executeUpdate( query );
if ( result == 1 ){
campos.Nome.setText( "" );
campos.Sobrenome.setText( "" );
campos.Endereco.setText( "" );
campos.Cidade.setText( "" );
campos.Estado.setText( "" );
campos.Cep.setText( "" );
JOptionPane.showMessageDialog(null,"Deletado com Sucesso",
"Ateno",JOptionPane.ERROR_MESSAGE);
}
else {
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
149
JOptionPane.showMessageDialog(null,
"No Deletado","Ateno",
JOptionPane.ERROR_MESSAGE);
apagarSQL.close();
}
else
JOptionPane.showMessageDialog(null,
"Clique em Consultar para encontrar um registro",
"Ateno",JOptionPane.ERROR_MESSAGE);
}
catch ( SQLException sqlex ) {
JOptionPane.showMessageDialog(null,
"OCORREU ALGUM ERRO","Ateno",
JOptionPane.ERROR_MESSAGE);
}
}
}
Classe limparRegistros.java
// limparRegistros.java
import java.awt.*;
import java.awt.event.*;
public class limparRegistros implements ActionListener {
private MontaTela campos;
public limparRegistros( MontaTela f )
{
campos = f;
}
150
Classe consultaRegistro.java
Explicao
String query = "SELECT * FROM Fornecedores WHERE Sobrenome =
'"+campos.Sobrenome.getText()+"'";
Esta linha atribui um contedo a varivel query.
Este contedo a instruo SQL SELECT para consultar registros na tabela
fornecedores.
Uma instruo SQL pura de consulta a que se segue:
152
Proibida a reproduo por qualquer meio eletrnico ou impresso.
Grupo iPED - Todos os direitos reservados - www.iped.com.br
153
154