aplicacoes com netbeans

83
O Netbeans O Netbeans é um ambiente integrado de desenvolvimento (IDE) que permite ao programador criar programas utilizando recursos gráficos. Para trabalhar com o NetBeans é necessário ter instalado, anteriormente em sua máquina uma das versões do JDK (Java), preferencialmente uma versão igual ou superior a J2SDK1.3.1. Instalando o Netbeans No mesmo site http://java.sun.com/ , faça também o download do NetBeans, caso não tenha um CD de instalação. Após o download, dê um duplo clique no ícone criado e siga os passos mantendo os padrões de instalação. Segue como exemplo algumas ilustrações da instalação da versão 3.5.1, a versão 4.0 segue o mesmo padrão:

Upload: smeagol1987

Post on 02-Jul-2015

920 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Aplicacoes Com Netbeans

O Netbeans

O Netbeans eacute um ambiente integrado de desenvolvimento (IDE) que

permite ao programador criar programas utilizando recursos graacuteficos

Para trabalhar com o NetBeans eacute necessaacuterio ter instalado anteriormente

em sua maacutequina uma das versotildees do JDK (Java) preferencialmente uma versatildeo

igual ou superior a J2SDK131

Instalando o Netbeans

No mesmo site httpjavasuncom

faccedila tambeacutem o download do

NetBeans caso natildeo tenha um CD de instalaccedilatildeo

Apoacutes o download decirc um duplo clique no iacutecone criado e siga os passos

mantendo os padrotildees de instalaccedilatildeo

Segue como exemplo algumas ilustraccedilotildees da instalaccedilatildeo da versatildeo 351 a

versatildeo 40 segue o mesmo padratildeo

NOTA Antes de iniciar a construccedilatildeo dos exemplos eacute interessante conhecer um

pouco da sintaxe baacutesica da linguagem para facilitar o seu entendimento

3 Conhecendo a IDE

- Depois de instalado execute o NetBeans clicando no iacutecone na aacuterea de

trabalho ou clicando no menu iniciar Programas NetBeans NetBeans

- O mesmo deveraacute exibir uma tela como a mostrada a seguir ou algo

parecido isto vai depender do tipo da instalaccedilatildeo SO Nuacutemero de vezes que o

mesmo jaacute tenha sido executado

31 Criando uma Aplicaccedilatildeo MDI

Barra de Menu

Paacutegina de Entrada

Janela de compilaccedilatildeo

Opccedilotildees de trabalho

- Composta de

1 Um Formulaacuterio principal

2 Um Menu

- Passos

1ordm - Clique no menu File New seraacute exibida uma tela como esta

2ordm - Decirc um duplo clique em Java GUI Forms ou clique na respectiva Lupa

3ordm - Selecione Sample Form MDI Aplication com isto criaremos uma aplicaccedilatildeo

composta de um formulaacuterio com um menu e que aceita a abertura de outros

formulaacuterios

4ordm - Clique no botatildeo NEXT

5ordm - Decirc um nome para o seu Aplicativo e no Campo Folder entre com um nome

que seraacute a pasta onde a aplicaccedilatildeo ficaraacute armazenada - Package Clique no botatildeo

Create Next

6ordm - Seraacute mostrada uma tela informando o nome da Aplicaccedilatildeo e o nome do

Package criado a superclasse que seraacute extendida e as classes a serem

implementadas Natildeo mude as opccedilotildees padratildeo clique no botatildeo Next

Nome da Aplicaccedilatildeo

Nome da PastaPackage

Cria a Pasta

7ordm - Clique no botatildeo Next

8ordm - Clique no botatildeo Next

9ordm - Clique no botatildeo Finish

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 2: Aplicacoes Com Netbeans

NOTA Antes de iniciar a construccedilatildeo dos exemplos eacute interessante conhecer um

pouco da sintaxe baacutesica da linguagem para facilitar o seu entendimento

3 Conhecendo a IDE

- Depois de instalado execute o NetBeans clicando no iacutecone na aacuterea de

trabalho ou clicando no menu iniciar Programas NetBeans NetBeans

- O mesmo deveraacute exibir uma tela como a mostrada a seguir ou algo

parecido isto vai depender do tipo da instalaccedilatildeo SO Nuacutemero de vezes que o

mesmo jaacute tenha sido executado

31 Criando uma Aplicaccedilatildeo MDI

Barra de Menu

Paacutegina de Entrada

Janela de compilaccedilatildeo

Opccedilotildees de trabalho

- Composta de

1 Um Formulaacuterio principal

2 Um Menu

- Passos

1ordm - Clique no menu File New seraacute exibida uma tela como esta

2ordm - Decirc um duplo clique em Java GUI Forms ou clique na respectiva Lupa

3ordm - Selecione Sample Form MDI Aplication com isto criaremos uma aplicaccedilatildeo

composta de um formulaacuterio com um menu e que aceita a abertura de outros

formulaacuterios

4ordm - Clique no botatildeo NEXT

5ordm - Decirc um nome para o seu Aplicativo e no Campo Folder entre com um nome

que seraacute a pasta onde a aplicaccedilatildeo ficaraacute armazenada - Package Clique no botatildeo

Create Next

6ordm - Seraacute mostrada uma tela informando o nome da Aplicaccedilatildeo e o nome do

Package criado a superclasse que seraacute extendida e as classes a serem

implementadas Natildeo mude as opccedilotildees padratildeo clique no botatildeo Next

Nome da Aplicaccedilatildeo

Nome da PastaPackage

Cria a Pasta

7ordm - Clique no botatildeo Next

8ordm - Clique no botatildeo Next

9ordm - Clique no botatildeo Finish

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 3: Aplicacoes Com Netbeans

3 Conhecendo a IDE

- Depois de instalado execute o NetBeans clicando no iacutecone na aacuterea de

trabalho ou clicando no menu iniciar Programas NetBeans NetBeans

- O mesmo deveraacute exibir uma tela como a mostrada a seguir ou algo

parecido isto vai depender do tipo da instalaccedilatildeo SO Nuacutemero de vezes que o

mesmo jaacute tenha sido executado

31 Criando uma Aplicaccedilatildeo MDI

Barra de Menu

Paacutegina de Entrada

Janela de compilaccedilatildeo

Opccedilotildees de trabalho

- Composta de

1 Um Formulaacuterio principal

2 Um Menu

- Passos

1ordm - Clique no menu File New seraacute exibida uma tela como esta

2ordm - Decirc um duplo clique em Java GUI Forms ou clique na respectiva Lupa

3ordm - Selecione Sample Form MDI Aplication com isto criaremos uma aplicaccedilatildeo

composta de um formulaacuterio com um menu e que aceita a abertura de outros

formulaacuterios

4ordm - Clique no botatildeo NEXT

5ordm - Decirc um nome para o seu Aplicativo e no Campo Folder entre com um nome

que seraacute a pasta onde a aplicaccedilatildeo ficaraacute armazenada - Package Clique no botatildeo

Create Next

6ordm - Seraacute mostrada uma tela informando o nome da Aplicaccedilatildeo e o nome do

Package criado a superclasse que seraacute extendida e as classes a serem

implementadas Natildeo mude as opccedilotildees padratildeo clique no botatildeo Next

Nome da Aplicaccedilatildeo

Nome da PastaPackage

Cria a Pasta

7ordm - Clique no botatildeo Next

8ordm - Clique no botatildeo Next

9ordm - Clique no botatildeo Finish

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 4: Aplicacoes Com Netbeans

- Composta de

1 Um Formulaacuterio principal

2 Um Menu

- Passos

1ordm - Clique no menu File New seraacute exibida uma tela como esta

2ordm - Decirc um duplo clique em Java GUI Forms ou clique na respectiva Lupa

3ordm - Selecione Sample Form MDI Aplication com isto criaremos uma aplicaccedilatildeo

composta de um formulaacuterio com um menu e que aceita a abertura de outros

formulaacuterios

4ordm - Clique no botatildeo NEXT

5ordm - Decirc um nome para o seu Aplicativo e no Campo Folder entre com um nome

que seraacute a pasta onde a aplicaccedilatildeo ficaraacute armazenada - Package Clique no botatildeo

Create Next

6ordm - Seraacute mostrada uma tela informando o nome da Aplicaccedilatildeo e o nome do

Package criado a superclasse que seraacute extendida e as classes a serem

implementadas Natildeo mude as opccedilotildees padratildeo clique no botatildeo Next

Nome da Aplicaccedilatildeo

Nome da PastaPackage

Cria a Pasta

7ordm - Clique no botatildeo Next

8ordm - Clique no botatildeo Next

9ordm - Clique no botatildeo Finish

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 5: Aplicacoes Com Netbeans

3ordm - Selecione Sample Form MDI Aplication com isto criaremos uma aplicaccedilatildeo

composta de um formulaacuterio com um menu e que aceita a abertura de outros

formulaacuterios

4ordm - Clique no botatildeo NEXT

5ordm - Decirc um nome para o seu Aplicativo e no Campo Folder entre com um nome

que seraacute a pasta onde a aplicaccedilatildeo ficaraacute armazenada - Package Clique no botatildeo

Create Next

6ordm - Seraacute mostrada uma tela informando o nome da Aplicaccedilatildeo e o nome do

Package criado a superclasse que seraacute extendida e as classes a serem

implementadas Natildeo mude as opccedilotildees padratildeo clique no botatildeo Next

Nome da Aplicaccedilatildeo

Nome da PastaPackage

Cria a Pasta

7ordm - Clique no botatildeo Next

8ordm - Clique no botatildeo Next

9ordm - Clique no botatildeo Finish

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 6: Aplicacoes Com Netbeans

6ordm - Seraacute mostrada uma tela informando o nome da Aplicaccedilatildeo e o nome do

Package criado a superclasse que seraacute extendida e as classes a serem

implementadas Natildeo mude as opccedilotildees padratildeo clique no botatildeo Next

Nome da Aplicaccedilatildeo

Nome da PastaPackage

Cria a Pasta

7ordm - Clique no botatildeo Next

8ordm - Clique no botatildeo Next

9ordm - Clique no botatildeo Finish

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 7: Aplicacoes Com Netbeans

7ordm - Clique no botatildeo Next

8ordm - Clique no botatildeo Next

9ordm - Clique no botatildeo Finish

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 8: Aplicacoes Com Netbeans

8ordm - Clique no botatildeo Next

9ordm - Clique no botatildeo Finish

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 9: Aplicacoes Com Netbeans

9ordm - Clique no botatildeo Finish

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 10: Aplicacoes Com Netbeans

A IDE abriraacute uma tela como a que se segue O NetBeans trabalha com

varias mini-telas com finalidades especificas todas de forma integradas a janela

principal a barra de menu

- Caso queira aumentar ou diminuir a aacuterea de visualizaccedilatildeo de uma destas

basta passar o mouse e redimensiona-las de acordo com a necessidade do

programa

- Para visualizar uma destas janelas clique no Menu View e selecione a

Janela desejada Ex Source Editor ou Form Editor

10ordm - Feche a Janela Explorer (File System)

clique no X para aumentar a

aacuterea do formulaacuterio de Trabalho

32 Componentes da Janela em modo de Trabalho

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 11: Aplicacoes Com Netbeans

33 Compilando Clique no Menu Build Compile ou Pressione F9

34 Executando Clique no Menu Build Execute ou Pressione F6

Arquivos componetes do Projeto

Propriedades

API Componentes

Form de Trabalho

Sistema de Arquivos

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 12: Aplicacoes Com Netbeans

Na execuccedilatildeo da aplicaccedilatildeo o formulaacuterio janela abre exibindo apenas o menu isto

porque natildeo tem nenhum componente verifique o menu sair observe que o

mesmo jaacute foi implementado pelo NetBeans Agora vamos inserir alguns

componentes procure deixar a sua aplicaccedilatildeo parecida com a seguinte Tela no

modo formulaacuterio (Lembre-se que eacute possiacutevel alternar entre as telas de coacutedigo e

formulaacuterio clicando no menu View e selecione Form EditorSource Editor)

Componentes Swing

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 13: Aplicacoes Com Netbeans

35 Trabalhando com componentes

- Na janela no canto superior direito que mostra os componentes da

aplicaccedilatildeo clique o Botatildeo direito do mouse sobre BorderLayout e selecione Set

Layout AbsolutLayout

NOTA - Esta mesma operaccedilatildeo pode ser efetuada clicando-se com o botatildeo direito

do mouse sobre a aacuterea do Formulaacuterio e selecionando SetLayout AbsolutLayout

- Eacute necessaacuterio modificar o Layout para que se possa colocar os

componentes (bototildees Labels etc) na posiccedilatildeo desejada isto porque o Formulaacuterio

(JFrameFrame) quando eacute criado tem como padratildeo o Layout BorderLayout que

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 14: Aplicacoes Com Netbeans

trabalha de forma diferente Mais a frente seraacute abordado de uma forma melhor

sobre os Layout

- Passe o mouse sobre os componentes da Aba Swing e observe que os

mesmos satildeo selecionados clique no correspondente ao JLabel e clique no

Formulaacuterio

- Na Janela Propriedades clique em Text e insira o texto que deseja que

apareccedila no JLabel

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 15: Aplicacoes Com Netbeans

- Insira outros componentes e mude suas propriedades realizando

experiecircncias compilando e executando para visualizar os resultados

Telas do NetBeans - Versatildeo 40

Tela de InicializaccedilatildeoAbertura

Criando uma Aplicaccedilatildeo - primeiro eacute necessaacuterio criar um projeto

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 16: Aplicacoes Com Netbeans

Selecione General Java Application Next

Cria um Projeto

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 17: Aplicacoes Com Netbeans

Em Project digite o nome Desejado

Criando um Programa File New File Java GUI Form JFrame Next

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 18: Aplicacoes Com Netbeans

Na nova janela que se abre digite o nome do Programa e clique no Botatildeo

Finish

Insira os componentes desejados

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 19: Aplicacoes Com Netbeans

Compile e Execute Menu Build Compile Para executar Menu

Run Run Other

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 20: Aplicacoes Com Netbeans

NOTA Os exemplos que seratildeo apresentados foram implementados utilizando o

NetBeans 351 que se diferencia visualmente muito pouco em relaccedilatildeo a versatildeo

40 posto que seratildeo exemplos simples Se for utilizar a versatildeo 40 os passos a

serem executados satildeo os mesmos salvo exceccedilatildeo quanto agrave criaccedilatildeo do Projeto que

jaacute foi demonstrado

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 21: Aplicacoes Com Netbeans

4 Aplicaccedilotildees Graacuteficas com Swing

Assunto Aplicaccedilotildees Graacuteficas com Swing

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Aplicaccedilotildees Graacuteficas com Swing

Nova famiacutelia de componentes com funcionalidade ampliada e grande

capacidade de configuraccedilatildeo

O seu propoacutesito eacute permitir a criaccedilatildeo de interfaces versaacuteteis e sofisticadas

Surgiu em 1997 com a JFC ( Java Foundation Classes) com o Java 2 que

engloba

o Componentes Swing

o Compatibilidade com muacuteltiplas acuteLook and Feel` - peles

o Biblioteca de acessibilidade monitores e teclados especiais

o Biblioteca Java 2D

o Compatibilidade com `Drag and Drop`

Principais Componentes

Os seus componentes satildeo semelhantes ao da AWT (Abstract Window

Toolkit) pois o modelo de eventos eacute o mesmo

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 22: Aplicacoes Com Netbeans

Diferenccedilas Componentes Swing satildeo mais flexiacuteveis e mais numerosos

Natildeo utilizam coacutedigo nativo seus nomes iniciam com um J

A base para uma aplicaccedilatildeo eacute o JFrame ou JWindow ( janela) ou a classe

JApplet (miniapplicativos)

JFrame natildeo eacute um mero container mas um painel especial que agrega trecircs

outros componentes em camadas

Destes o que nos interessa eacute o ContentPane (painel de conteuacutedo) onde

vamos inserir os demais componentes

Container conteudo= getContePane()

a) JLabel roacutetulo de texto

Meacutetodos especiacuteficos

String getText() retorna o texto do label

void setText(String lbl) ajusta o texto do label para lbl

b) JButton eacute um botatildeo simples que pode ser criado com ou sem roacutetulo

Meacutetodos especiacuteficos

String getText() retorna o label(etiqueta) do botatildeo

void setText(String etiq) ajusta label do botatildeo para o conteuacutedo de etiq

c) JTexField e JTextArea

TextField caixa de entrada de texto possibilita a entrada e a ediccedilatildeo de

uma linha de texto

TextArea caixa de entrada de texto com muacuteltiplas linhas Exibe barra de

rolagem horizontal e vertical

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 23: Aplicacoes Com Netbeans

principais meacutetodos

String getText() retorna o texto contido no TextField

void setText(String txt) ajusta o texto da TextField para txt

d) JList e JCombobox

JList caixa de lista que permite a exibiccedilatildeo de uma lista de itens que natildeo

podem ser editados diretamente pelo usuaacuterio

JCombobox implementa uma lista de itens em que um uacutenico item

selecionado eacute exibido

principais meacutetodos

int getSelectedIndex() retorna iacutendice do item selecionado

String getSelectedItem() retorna o nome do item selecionado

void select(String str) ajusta o item selecionado para str

MEacuteTODOS COMUNS A TODOS OS COMPONENTES

void resize(int width int height) Tamanho do componente

void move(int x int y) Mover componente

void setForeground(Color x) Cor do componente

void setBackground(Color y)

Cor de Fundo do componente

void disable() Desabilitando componente

void enable() Habilitando componente

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 24: Aplicacoes Com Netbeans

Gerenciadores de Layout

Gerenciamento de layout ( Layout Management ) eacute o processo de

determinar o tamanho e a posiccedilatildeo dos componentes na janela graacutefica do

programa ou seja determinar onde os componentes iraacute ficar guiando a maneira

como os elementos de interface seratildeo dispostos dentro do container (Frame

PanelWindow)

Existe basicamente os seguintes tipos de layout

a) FlowLayout

b) BorderLayout

c) CardLayout

d) GridLayout

e) GridBagLayout

A escolha do gerenciador de layout depende muito das necessidades

do programa

a) FlowLayout

Simplesmente posiciona os componentes da esquerda para a direita criando

novas linhas se necessaacuterio

EX

b) BorderLayout

Eacute o Padratildeo Divide a janela em cinco aacutereas nas quais os componentes

podem ser exibidos norte sul leste oeste e centro

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 25: Aplicacoes Com Netbeans

c) CardLayout

Permite apresentar dois ou mais componentes (geralmente paineacuteis)

compartilhando o mesmo espaccedilo de apresentaccedilatildeo Funciona como uma pilha de

cartas onde apenas uma fica visiacutevel

- Cria-se um Painel fixo de Controle e um geneacuterico (CardLayout) para conter

outros paineis

d) GridLayout

Deixa todos os componentes com igual tamanho exibindo-os como uma

tabela (linhas e colunas)

EX substitua a linha 9 do Programa Paneljava por

setLayout( new GridLayout(31))

e) GridBagLayout

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 26: Aplicacoes Com Netbeans

Eacute o mais flexiacutevel dos gerenciadores de layout permite colocar componentes

em grades de colunas sendo possiacutevel um componente ocupar mais de uma

coluna ao mesmo tempo As linhas tambeacutem natildeo precisam necessariamente ter os

mesmos tamanhos ou seja vocecirc pode configurar diferentes larguras e alturas de

acordo com a necessidade No entanto eacute o mais difiacutecil de ser implementado

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 27: Aplicacoes Com Netbeans

5 Aplicaccedilotildees Graacuteficas com Swing Construindo Aplicaccedilotildees com o

NetBeans

Assunto Aplicaccedilotildees Graacuteficas com Swing Construindo aplicaccedilotildees com o

NetBeans

Objetivo criar aplicaccedilotildees Graacuteficas utilizando Swing

Utilizando JLabel JTextField e JButton com o NetBeans

1 Crie uma aplicaccedilatildeo para somar os valores de duas Notas Fiscais a serem

informados pelo usuaacuterio

Nesta Aplicaccedilatildeo utilizaremos dois JTextField (onde o usuaacuterio iraacute digitar os

valores) um JLabel (mostrar o resultado da soma) e um botatildeo a ser clicado

para efetuar a soma

Abra o NetBeans Clique no Menu File New Decirc um Duplo clique em

Java GUI Forms Selecione JFrame Form Clique no Botatildeo Next

Na nova janela que se abre Digite JCalculadora Clique no Botatildeo Finish

seu projeto seraacute iniciado

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 28: Aplicacoes Com Netbeans

Antes de inserir os componentes devemos modificar o Layout para

AbsoluteLayout ou para NullLayout para podemos criar o nosso Layout

NOTA - O AbsoluteLayout eacute um gerenciador de Layout criado especificamente

para o NetBeans portanto se for utiliza-lo sem o NetBeans teraacute de acrescentar o

respectivo pacote e distribuiacute-lo juntamente com o seu programa Caso contraacuterio o

mesmo natildeo executaraacute corretamente

- O Null Layout natildeo eacute um gerenciador de Layout mas corresponde agrave

situaccedilatildeo em eacute desativado uso dos gerenciadores neste caso a posiccedilatildeo dos

componentes eacute explicitamente definida atraveacutes de meacutetodos especiacuteficos que a

ferramenta se encarrega de manipular mas os mesmo natildeo vale para o Formulaacuterio

(FrameJFrame) onde se faz necessaacuterio a utilizaccedilatildeo do meacutetodo setBounds

Ex setBounds(1010300400)

abre o tela na posiccedilatildeo largura 10 altura 10 com um largura de 300 e altura 400

Na janela no canto superior direito Clique com o botatildeo direito do mouse sobre

JFrame setLayout clique em NullLayout

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 29: Aplicacoes Com Netbeans

Na janela do Centro do viacutedeo embaixo da Aba Swing existem vaacuterios iacutecones

representando os respectivos componentes passe o mouse sobre os mesmos

e apareceraacute o nome clique no primeiro JLabel e clique no Form Clique no

segundo JButton e clique no Form Clique no nono JTextField e clique no

Form (dois JTextField) insira mais dois JLabel e outro JtextField

Na janela Propriedade modifique as propriedades dos componentes de acordo

com a tabela

Componente Propriedade Valor

JFrame Title Calculadora

JLabel1 Text Nuacutemero 1

JLabel2 Text Nuacutemero 2

JLabel3 Text Resultado

JTextField1 Text

JtextField2 Text

JButton1 Text Somar

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 30: Aplicacoes Com Netbeans

A parte visual jaacute foi criada precisamos implementar o coacutedigo no botatildeo para

efetuar a soma ( pegar os nuacutemeros e somaacute-los)

Decirc um Duplo clique no botatildeo e na janela de coacutedigo que aparece digite

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1 + num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Apoacutes digitar os comandos o arquivo de coacutedigo deveraacute ficar da seguinte forma

Observe que os nomes dos componentes (jLabel3) comeccedilam com letras

minuacutesculas

Parte do Coacutedigo com a declaraccedilatildeo dos componentes criados

A parte do Coacutedigo que estiver na cor azul natildeo aceita modificaccedilotildees

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 31: Aplicacoes Com Netbeans

Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa

para o mesmo funcionar normalmente

Mas como o Layout que estaacute sendo utilizado eacute o Null Layout quando o

programa for executado a janela apareceraacute mostrando apenas a barra de titulo

Para a janela abrir e mostrar todos os componentes devemos acrescentar o

comando com a localizaccedilatildeo e tamanho da janela

(setBounds(posXposYLarguraAltura)) procure a seguinte linha de coacutedigo

Apoacutes initComponents() insira o seguinte comando

setBounds(1010300400)

Apoacutes o comando o arquivo de coacutedigo ficaraacute desta forma

Se precisar voltar para o modo Form Editor clique no Menu View Form

Editor ou Crt+8

Para ir para o coacutedigo clique no menu View

Source Editor ou Crt+3

Compile Menu Build Compile (F9) execute Menu Build Execute (F5)

Criando uma Calculadora

Utilize o programa anterior e acrescente mais 4 (quatro) JButtons

Componente

Propriedade Valor Propriedade Valor

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 32: Aplicacoes Com Netbeans

JButton2 Text Diminuir Mnemonic D

JButton3 Text Multiplicar

Mnemonic M

JButton4 Text Dividir Mnemonic V

JButton5 Text Limpar TooltipText Limpar as caixas de Texto

Decirc um duplo clique no botatildeo Diminuir e insira o seguinte coacutedigo

double num1=DoubleparseDouble(jTextField1getText()) converte texto

para double

double num2=DoubleparseDouble(jTextField2getText())

double result = num1- num2

String R= StringvalueOf(result) Converte o Resultado para String

jLabel3setText(Resultado +R) exibe no JLabel o Resultado

Repita o processo nos outros bototildees modificando apenas a operaccedilatildeo

matemaacutetica

Decirc um duplo clique no botatildeo Limpar e digite

jTextField1setText( ) limpa a caixa de texto

jTextField2setText( )

jTextField1requestFocus() muda o foco para a caixa 1

Compile (F9) e execute (F6)

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 33: Aplicacoes Com Netbeans

Para criar um arquivo que eacute executado diretamente pelo Windows basta criar

um arquivo Bat

Abra o Bloco de Notas e digite java JCalculadora

Salve com um nome qualquer e com a extensatildeo CalculadoraBat na

mesma pasta do programa

OBS Lembre-se que o Layout AbsoluteLayout eacute EXCLUSIVO do NetBeans

sendo que para utiliza-lo efetivamente na sua aplicaccedilatildeo vocecirc deveraacute incluir no

seu projeto o respectivo pacote senatildeo na execuccedilatildeo ocorreraacute erros ou modifique o

Layout para Null Layout e defina o tamanho de seu FrameJFrame para que o

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 34: Aplicacoes Com Netbeans

mesmo possa ser visualizado no tamanho desejado (setBounds()) caso contraacuterio

o mesmo apareceraacute mostrando somente a barra de titulo

OBS2 Para fins de agilizar a construccedilatildeo dos exemplos seraacute utilizado o Layout

AbsoluteLayout mas se for construir comercialmente um programa o mesmo

deveraacute ter o Layout Null Layout

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 35: Aplicacoes Com Netbeans

6 Utilizando JComboboxJlist e JRadioButton

JComboboxJList

a) Criar uma aplicaccedilatildeo para informar qual a forma de pagamento selecionada

pelo usuaacuterio Cheque Cartatildeo ou Dinheiro

Clique no Menu File

New

Java GUI Forms

clique em JFrame Form

clique em Next

Na Janela que se abre digite FormaPaga clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout

Clique no Form e modifique a propriedade Title do Form para Forma de

Pagamento

Clique no seacutetimo iacutecone JCombobox e clique no Form na Janela Propriedades

clique em Model

clique no Botatildeo

Na janela que se abre em Item digite cheque e clique no botatildeo Add digite

cartatildeo e clique no botatildeo Add digite dinheiro e clique no botatildeo Add clique

no botatildeo OK

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 36: Aplicacoes Com Netbeans

Insira um JLabel clique no primeiro iacutecone (JLabel) e clique no Form

Insira um JButton clique no segundo iacutecone (JButton) e clique no Form

A parte visual foi criada falta o coacutedigo Para saber qual a opccedilatildeo selecionada

utilize o Meacutetodo

Object getSelectedItem()

Decirc um duplo clique no botatildeo Escolher

String S= (String) jComboBox1getSelectedItem()converte em String

jLabel1setText(A opccedilatildeo escolhida foi + S) exibe opccedilatildeo no Jlabel

Compile (F9) e Execute (F6)

Se desejar tambeacutem eacute possiacutevel saber o iacutendice getSelectedIndex()

A utilizaccedilatildeo do JList eacute idecircntica a vista a cima basta substituir o meacutetodo

getSelectedItem() por getSelectedValue()

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 37: Aplicacoes Com Netbeans

Utilizando JRadioButton com o NetBeans

b) Criar uma aplicaccedilatildeo para mostrar o tipo de motor (101620) escolhido pelo

usuaacuterio

Crie uma nova Template JFrame Form Motor clique no Menu File New

No Form que se abre Clique no sexto iacutecone ButtonGroup e clique no Form

para criar um grupo de radio e permitir a seleccedilatildeo de apenas uma opccedilatildeo

Clique no quinto iacutecone JRadioButton e clique no Form na janela

Propriedades selecione Text e digite Motor 10 Selecione a propriedade

buttonGroup e clique em buttonGroup1 repita todo o processo por duas

vezes para criar a opccedilatildeo Motor 16 e Motor 20

Insira um JLabel Text Opccedilatildeo Escolhida no Form e um JButton Escolher

Para saber qual a opccedilatildeo esta marcada devemos utilizar o Meacutetodo boolean

isSelected() que devolve true ou false

Decirc um duplo clique no botatildeo para inserir o coacutedigo

if (jRadioButton1isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 10) exibe opccedilatildeo no JLabel

if (jRadioButton2isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 16)

if (jRadioButton3isSelected()) verifica se a opccedilatildeo esta marcada -true

jLabel1setText(Motor escolhido 20)

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 38: Aplicacoes Com Netbeans

Para saber qual eacute o Texto exibido pelo JRadioButton basta utilizar o Meacutetodo

String getText()

Ex String s=jRadioButton1getText()

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 39: Aplicacoes Com Netbeans

7 Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Assunto Aplicaccedilotildees Graacuteficas com Swing Componentes Especializados

Objetivo Criar aplicaccedilotildees utilizando componentes especializados Swing

JOptionPane

Janelas de dialogo para informar ou solicitar confirmaccedilatildeo de operaccedilotildees ou

efetuar a entrada direta de valores

Mensagens

Entrada de Texto

Janelas de Confirmaccedilatildeo

Exemplos

Mensagem

JOptionPaneshowMessageDialog( this mensagem )

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 40: Aplicacoes Com Netbeans

Confirmaccedilatildeo

int x = JOptionPaneshowConfirmDialog( this Mensagem1 )

Entrada de Texto

String s= JOptionPaneshowInputDialog( Mensagem 2 )

int x = JOptionPaneshowConfirmDialog(this Confirmar Aplicaccedilatildeo

JOptionPaneOK_CANCEL_OPTION

JOptionPaneQUESTION_MESSAGE)

Nas IDE como NetBeans eacute possiacutevel inserir um objeto visual mas natildeo eacute possiacutevel

controlar as accedilotildees dos respectivos bototildees

Se quiser utiliza-los no Netbeans insira-os dentro de um meacutetodo

actionPerformed de um JButton

Exemplo - Criar um Programa contendo um botatildeo que ao ser pressionado

exiba informaccedilotildees sobre o programa

- Crie uma nova Template JFrame Form Mensagem Menu File New

- Mude o Layout para AbsoluteLayuot

- Insira um JButton Mensagem decirc um duplo clique para inserir o coacutedigo

JOptionPaneshowMessageDialog(thisPrograma criado n utilizando o

Netbeans)

o n foi utilizado para mostrar como inserir uma quebra de linha

- Este componente pertence ao pacote Swing que deve ser importado atraveacutes do

import

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 41: Aplicacoes Com Netbeans

- Procure no coacutedigo o comando que cria a classe que estaacute no iniacutecio do programa

public class Mensagem extends javaxswingJFrame

- Antes deste comando insira o coacutedigo

import javaxswing importa os componentes do pacote swing

- Compile e Execute

Todos os exemplos anteriores poderiam ter utilizado o

JOptionPaneshowMessageDialog

ToolTipText texto explicativo exibido quando o mouse passa sobre o

componente

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 42: Aplicacoes Com Netbeans

No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos

Componetes (JLabel JTextField JButton )

JFileChooser

Janelas de dialogo para seleccedilatildeo de arquivos

Abrir (Open)

Salvar (Save)

Exemplo Coacutedigo a ser inserido na accedilatildeo de um botatildeo Abrir Arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowOpenDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

File arquivo= arqgetSelectedFile() Classe para

Arquivos

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 43: Aplicacoes Com Netbeans

Systemoutprintln(arquivo) Imprime nome do

Arquivo

Classe File suporte para tratamento de arquivos

FileReaderFileWrite FileInputStream FileOutputStream

- satildeo usados para ler ou gravar arquivos no sistema

FileReader in = new FileReader(Entradatxt)

FileWriter out = new FileWriter (Saidatxt)

Comando para ler e escrever arquivos (Byte e natildeo Stringchar) read() e

write(String s)

while ((int c=arqinread()) =-1) lecirc Entradatxt

outwrite(c) grava em Saidatxt

Systemoutwrite(c) direciona para o viacutedeo

outwrite(p) gravar a String no final do arquivo

inclose() fecha os arquivos

outclose()

Exemplo criar um programa que permita selecionar um arquivo de texto txt

e mostrar o conteuacutedo em um JTextArea

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 44: Aplicacoes Com Netbeans

Crie uma nova Template Java Gui Form JFrame Form

Insira um JTextArea e um JButton Abrir Arquivo e decirc um duplo clique no

botatildeo digite

try Blco de Tratamento de errosexceccedilotildees nos arquivos

File arquivo Objeto para arquivos

JFileChooser arq= new JFileChooser() objetos de seleccedilatildeo de arquivo

int Result=arqshowOpenDialog(this) mostra a janela de seleccedilatildeo de

arquivo

if(Result==JFileChooserAPPROVE_OPTION) verifica se foi seleciona

um arquivo

arquivo = arqgetSelectedFile() verifica o arquivo selecionado

int c variaacutevel para receber os Bytes do arquivo

String Texto= variaacutevel para receber os dados do arquivo

FileReader inArq = new FileReader(arquivogetPath()) abre o

arquivo para leitura

while((c = inArqread())=-1) lecirc Byte por Byte ateacute o final do

arquivo (-1)

Texto=Texto+(char)c transforma o Byte lido em um char

final do while

jTextArea1setText(Texto) exibe no JTextArea o conteuacutedo lido do

arquivo

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 45: Aplicacoes Com Netbeans

inArqclose()

final do if

catch (IOException ioe) verifica qual foi o erroexceccedilatildeo

JOptionPaneshowMessageDialog(thiserro ao abrir o arquivo)

mensagem de erro

Insira antes da declaraccedilatildeo da classe public class no comeccedilo do programa

import javaio

import javaxswing

Eacute possiacutevel acrescentar um outro botatildeo para salvar novos texto que o usuaacuterio

pode inserir no JTextArea

Acrescente um novo JButton Salvar decirc um duplo clique e digite

try

File arquivo

JFileChooser arq= new JFileChooser()

int Result=arqshowSaveDialog(this)

if(Result==JFileChooserAPPROVE_OPTION)

arquivo = arqgetSelectedFile() Classe para Arquivos

FileWriter inArq = new FileWriter(arquivogetPath())

inArqwrite(jTextArea1getText()) lecirc o arquivo

inArqclose()

catch(IOException ioe)

JOptionPaneshowMessageDialog(thiserro ao abriri o arquivo)

Add your handling code here

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 46: Aplicacoes Com Netbeans

Estes comandos podem ser inseridos em um Menu

A primeira aplicaccedilatildeo criada como exemplo representa a criaccedilatildeo de editor de

texto jaacute composto de um Menu mas que natildeo possui os respectivos coacutedigos

para efetuar as operaccedilotildees de abrir um documento e salvaacute-lo Experimente

implementar os respectivos coacutedigos nessa para efetivamente criar um editor de

texto

JEditorPane

Painel de Conteuacutedo eacute uma aacuterea de texto especializada na exibiccedilatildeo e ediccedilatildeo de

vaacuterios tipos de conteuacutedo texto simples(textplain) HTML(texthtml) e RTF

Rich Text Format(textrtf)

Exemplo Criar um Programa que permita exibir um arquivo com extensatildeo

html ou htm

Crie uma nova Template Java GUI Form JFrame Form

Insira um objeto JScrollPane no Form e insira dentro deste um objeto

JEditorPane da Aba Swing (Other)

Insira um objeto JButton Selecionar Paacutegina

JFileChooser arq = new JFileChooser()

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 47: Aplicacoes Com Netbeans

int result=arqshowOpenDialog(this)

if(result==JFileChooserAPPROVE_OPTION)

try

File arquivo= arqgetSelectedFile()

URL pagina= new URL(file+arquivogetPath())

jEditorPane1setPage(pagina)

catch(MalformedURLException mue)

JOptionPaneshowMessageDialog(thisErro na paacutegina)

catch( IOException ioe)

JOptionPaneshowMessageDialog(thisErro no arquivo)

Insira a importaccedilatildeo dos pacotes antes da declaraccedilatildeo da classe public class

import javaxswing

import javanet

import javaio

Compile e Execute

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 48: Aplicacoes Com Netbeans

8 Trabalhando Muacuteltiplos Formulaacuterios - Menus

Assunto Aplicaccedilotildees Graacuteficas com Swing Muacuteltiplos Formulaacuterios

Objetivo Criar aplicaccedilotildees com Vaacuterios Formulaacuterios

SUMAacuteRIO

Introduccedilatildeo

Desenvolvimento

o Criando Muacuteltiplos Formulaacuterios

Conclusatildeo

Criando Muacuteltiplos Formulaacuterios - Menus

Para se construir uma Aplicaccedilatildeo contendo vaacuterios Formulaacuterios eacute preciso criaacute-los

em separados e chamaacute-los em um Formulaacuterio Principal atraveacutes de Bototildees ou de

Menus

No Formulaacuterio Principal a chamada dos outros formulaacuterios consiste em se criar

instacircncias dos respectivos formulaacuterios que se deseja exibir utilizando o meacutetodo

show() ou o meacutetodo setVisible(boolean)

Na criaccedilatildeo de Formulaacuterios utilizando o NetBeans ( e outras IDE) a ferramenta

cria os comandos necessaacuterios para o fechamento do Formulaacuterios desta forma se

o Formulaacuterio Principal chamaacute-lo e este apoacutes ser aberto for fechado provocaraacute o

fechamento da aplicaccedilatildeo

Para evitar este problema devemos modificar estes comandos para podermos

fechar o formulaacuterio sem fechar a Aplicaccedilatildeo

Exemplo

Criar uma Aplicaccedilatildeo contendo um Menu que exibi os Formulaacuterios de Cadastro

de Clientes e de Veiacuteculos

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 49: Aplicacoes Com Netbeans

Clique no Menu File

New

Java GUI Forms

Botatildeo Next

em Name

digite SistLocaccedilatildeo Clique no Botatildeo Finish

Eacute preciso criar o Menu

Na Aba Swing clique no iacutecone JMenuBar e clique no Form

na Janela

Propriedades clique em Text e digite Cadastro (texto que seraacute exibido pelo

Menu)

Clique com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem

na janela propriedade clique em Text

digite Clientes

clique novamente com o botatildeo direito do mouse sobre o Menu criado

selecione

Add JMenuItem clique em Text e digite Veiacuteculos

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 50: Aplicacoes Com Netbeans

Observe que os SubMenus natildeo aparecem no Form este seratildeo exibido na

execuccedilatildeo do programa mas apara o objeto criado no Form

-

Objeto JMenuItem criado no Form o mesmo natildeo aparece no Form durante a construccedilatildeo do programa Soacute aparece na Execuccedilatildeo

-

Texto do submenu que seraacute exibido para o usuaacuterio na execuccedilatildeo do programa -

Se desejar modificar o texto de um submenu basta clicar na janela acima no objeto desejado (Ex jMenuItem1) e na propriedade Text digitar o novo texto

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 51: Aplicacoes Com Netbeans

Os Menus foram criados faltam os Formulaacuterios Clientes e Veiacuteculos

Crie um Novo Form Clique no Menu File

New clique no Botatildeo Next em

Name digite Clientes clique no botatildeo Finish

Modifique o Layout para AbsoluteLayout e insira trecircs JLabels para exibir os

roacutetulos Nome Fone CPF e trecircs JTextFields para podermos digitarexibir os

dados

Devemos modificar o comando responsaacutevel pelo fechamento do Form para que

natildeo feche a Aplicaccedilatildeo

Clique com o botatildeo direito do mouse no Form e clique em Goto Source ou

presiione Ctr-3 procure o comando que deve estar antes do meacutetodo main

private void exitForm(javaawteventWindowEvent evt)

Apague o comando

Systemexit(0)

E digite no seu lugar

setVisible(false)

Volte para o primeiro Form (SistLocaccedilatildeo) para isto clique na Aba SistLocaccedilatildeo

localizada na janela principal do Form

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 52: Aplicacoes Com Netbeans

Decirc um duplo clique em JMenuItem1 se o mesmo natildeo estiver aparecendo clique

no menu criado decirc um duplo clique no JMenuItem1 para inserir o evento

responsaacutevel pela chamada do Form Clientes

Na janela de coacutedigo que se abre procure o seguinte comando

private void jMenuItem1ActionPerformed

Antes deste comando digite

Clientes FormCliente = new Clientes() instanciaccedilatildeo do Formulario Clientes

Se tiver criado a Template com outro nome substitua o nome Clientes por

este nome

E dentro do meacutetodo depois de Add your handling code here digite

FormClienteshow() exibiccedilatildeo do Formulaacuterio Clientes

Compile e Execute

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 53: Aplicacoes Com Netbeans

Repita os mesmos passos para criar o Form Veiacuteculos e para exibi-lo

Clique no Menu File New Next

digite o Nome Veiacuteculos clique

no botatildeo Finish

Mude o Layout e insira os componentes (JLabel e JTextField) vaacute para o

coacutedigo e modifique o comando Systemexit(0) para setVisible(false)

Volte para o Form SistLocaccedilatildeo e decirc um duplo clique em JMenuItem2

antes do respectivo meacutetodo actionPerformed instancie o Form

Veiacuteculos FormVeiculo = new Veiacuteculos() instanciaccedilatildeo do Form

Dentro do meacutetodo digite o comando para exibiccedilatildeo

FormVeiculoshow()

Compile e Execute Seu Pequeno Sistema foi Criado

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 54: Aplicacoes Com Netbeans

9 Applets Funcionamento e Estrutura

Assunto Applets Funcionamento e Estrutura

Objetivo escrever mini-aplicativos java que rodam na internet e intranet

Applets

Satildeo pequenos programas Java que podem ser inseridos dentro de paacuteginas

HTML

interagir com o usuaacuterio que a consulte

pode executar tarefas complexas como realizar caacutelculos e apresentar

graacuteficos sons e imagens em movimento

Applets Funcionamento

Para inserir uma applet numa paacutegina HTML usamos a diretiva ltappletgt

que deve apresentar pelo menos trecircs parametros code width e height

Assim a especificaccedilatildeo mais simples tem a forma

ltapplet code=[java applet] width=[largura] height=[altura]gt

ltappletgt

[java applet] nome da classe principal do programa Java

AloPessoalclass

[largura] e [altura]indicam a largura e a altura em pixels da aacuterea dentro da

paacutegina reservada para a apresentaccedilatildeo da applet

uma applet deve conter ao menos uma classe puacuteblica e essa classe

puacuteblica deve estender a classe Applet

A classe Applet faz parte do package applet

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 55: Aplicacoes Com Netbeans

import javaawt importaccedilatildeo dos componentes

import javaapplet importaccedilatildeo da classe Applet

public class AloPessoal extends Applet

public void paint(Graphics g) meacutetodo para desenho

gdrawString(Alocirc Pessoal 100 20) desenha um texto

Este programa deve ser compilado e apoacutes a depuraccedilatildeo dos erros eacute

informado o arquivo gerado class no arquivo html atraveacutes do paracircmetro

code (code = ArquivoJavaclass) eacute informado qual o arquivo Java a ser

utilizado na paacutegina HTML

Arquivo Html (com um nome qualquer Ex Alohtml )

ltapplet code= AloPessoalclass width=120 height=120gt

ltappletgt

Paracircmetros adicionais

o codebase URL do diretoacuterio que conteacutem as classes compiladas

(bytecodes) do applet

o name Um nome que identifica uma particular instacircncia de um applet

dentro de uma paacutegina HTML (uacutetil para comunicaccedilatildeo entre applets)

o align especifica um alinhamento para a aacuterea da applet dentro da

paacutegina Anaacutelogo ao alinhamento de imagens

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 56: Aplicacoes Com Netbeans

o alt Texto a ser exibido na aacuterea da applet durante o carregamento

ou na impossibilidade de carregar a applet

Applets Estrutura

A classe Applet define quatro meacutetodos baacutesicos para controlar a

execuccedilatildeo e interaccedilatildeo com o browser

a) init() executado quando a applet e carregada ou recarregada adiccedilatildeo de

componentes recebimento de paracircmetros de execuccedilatildeo e preparo da applet

b) start() executado apoacutes o meacutetodo init ou ao ser recarregada deve ser utilizado

quando eacute necessaacuterio assegurar alguma condiccedilatildeo especial

c) stop() executada quando o usuaacuterio muda de paacutegina permanecendo na

memoacuteria ou fecha o browser

d) destroy() executada quando a applet for removida da memoacuteria

paint() eacute definido pela classe Component da AWT atualiza a exibiccedilatildeo da applet

A maneira mais simples de se construir uma applet eacute por meio do

meacutetodo paint o conteuacutedo apresentado soacute depende desse meacutetodo

A combinaccedilatildeo destes meacutetodos representa o ciclo de vida de uma applet

Criando Applets no NetBeans

A criaccedilatildeo de Applet utilizando o Netbeans eacute uma tarefa simples

devendo ser criado apenas o programa Java o Applet porque a ferramenta cria

automaticamente o corresponde arquivo HTML com o mesmo nome do seu

programa contendo os coacutedigos para executar a paacutegina web

1) Criar um Applet que permita ao usuaacuterio digitar dois nuacutemeros reais e mostrar o

resultado da soma destes

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 57: Aplicacoes Com Netbeans

A criaccedilatildeo de Applet no Netbeans eacute feita atraveacutes de Templates eacute possiacutevel

trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote

Swing

O Exemplo que se segue seraacute implementado utilizando o JApplet

Clique no menu File

New

Java GUI Form JApplet Form

clique no

Botatildeo Next

digite o nome Calculadora e clique no botatildeo Finish

Antes de inserir os componentes modifique o Layout para NullI Layut para

poder organizar os componentes da maneira desejada Clique com o botatildeo direito

do mouse na janela no canto superior direito em JApplet e selecione Null

Layout

Insira trecircs JLabel ( Nuacutemero 1

e Nuacutemero 2 ) dois JTextField quatro

JButton( Somar Diminuir Multiplicar Dividir ) organize-os da seguinte forma

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 58: Aplicacoes Com Netbeans

Para inserir um atalho para o botatildeo digite a letra desejada na propriedade

Mnemonic

A parte visual foi criada falta os eventos dos bototildees

Decirc um duplo clique botatildeo Somar e digite

float op1op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1=FloatparseFloat(jTextField1getText())

op2=FloatparseFloat(jTextField2getText())

result=op1+op2

converte o resultado em String e exibe

jLabel3setText(StringvalueOf(Resultado + result))

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Compile e Execute

Observe que ao executar o programa o mesmo eacute mostrado no Applet Viewer

um aplicativo do JDK construiacutedo para auxiliar na implementaccedilatildeo dos applets e

gera automaticamente o arquivo HTML com o mesmo nome do programa applet

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 59: Aplicacoes Com Netbeans

Para visualisar o arquivo HTML clique no menu View FileSystem e decirc um

duplo clique no arquivo com o mesmo nome do programa mas do tipo HTML

Se desejar modifique a aacuterea destinada a mostrar o applet no browser modifique

no arquivo HTML os valores dos coacutedigos WIDTH (Largura do Apllet) e HEIGHT(

Altura) Ex

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 60: Aplicacoes Com Netbeans

ltAPPLET codebase= code=AppletsJCalculadoraclass width=350

height=250gt

ltAPPLETgt

Para executar o arquivo ou seja abrir no browser basta executar (F6)

Para implementar as operaccedilotildees matemaacuteticas (eventos) dos outros bototildees

decirc um duplo clique no botatildeo e digite o mesmo coacutedigo do botatildeo soma e

modificando apenas o sinal de soma para a operaccedilatildeo desejada Exemplo

par ao botatildeo Subtrair

float op1 op2 result variaacuteveis auxiliares

pega o nuacutemero digitado e o converte para float

op1 = FloatparseFloat( jTextField1getText() )

op2 = FloatparseFloat( jTextField2getText() )

result = op1- op2

converte o resultado em String e exibe

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 61: Aplicacoes Com Netbeans

jLabel3setText( StringvalueOf( Resultado + result) )

jTextField1setText( ) Limpar o JTextField

jTextField2setText( )

jTextField1requestFocus() muda o foco para o JTextField 1

Tambeacutem eacute possiacutevel exibir os resultados das operaccedilotildees utilizando um

JOptionPane

2) Crie um Applet que informa o valor do empreacutestimo que eacute calculado conforme o

valor do saldo meacutedio digitado pelo usuaacuterio (ateacute R$ 100000

zero de R$ 1001

ateacute 2500 30 do Saldo Meacutedio acima de R$ 2500 50 do Saldo Meacutedio)

Crie um Novo Programa File New Java GUI Form JApplet digite o

nome Empreacutestimo Finish

Clique com o Botatildeo direito do mouse no Form selecione setLayout e

clique em Null Layout

Insira dois JLabel no Form modificando as propriedade Text para Saldo

Meacutedio e Valor do Empreacutestimo insira um JTextField e um JButton

modifique a propriedade Text para Calcular

Decirc um duplo clique no botatildeo e digite os comandos

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 62: Aplicacoes Com Netbeans

float saldo variaacutevel auxiliar

try tratamento de erros do valores

saldo = FloatparseFloat(jTextField1getText()) pega o valor digitado e

converte

verificaccedilatildeo dos valor digitado e do empreacutestimo que pode ser concedido

if (saldolt1000)

jLabel2setText(Valor do Empreacutestimo Zero)

if ((saldogt=1000) amp (saldolt=2500))

jLabel2setText(Valor do Empreacutestimo + saldo 03)

if (saldogt2500)

jLabel2setText(Valor do Empreacutestimo + saldo 05)

catch (Exception e) exibe mensagem caso natildeo seja digitado um

valor vaacutelido

jLabel2setText(Natildeo eacute um Valor Vaacutelido)

Compile e Execute

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 63: Aplicacoes Com Netbeans

10 Banco de Dados No NetBeans

Assunto Acessando Bancos de Dados

Objetivo criar programas que acessam Banco de Dados

Acessando Bancos de Dados

A comunicaccedilatildeo de coacutedigo Java puro com Banco de dados eacute uma tarefa

muito difiacutecil devido a enorme quantidade de bancos de dados existente

no mercado com linguagens proprietaacuterias

A plataforma Java permite o acesso a banco de dados por meio de uma

API (Application Programming Interface) chamada JDBC (Java

Database Connectivity)

Eacute uma interface entre a linguagem Java e outra linguagem que todos os

bancos de dados suportam

O Objetivo da JDBC eacute possibilitar o uso de dados existentes em SGBDR

remotos Utiliza o SQL (Structured Query Language) linguagem

destinada agraves operaccedilotildees dos SGBDR

Arquitetura

Eacute muito parecida com o padratildeo ODBC (Open DataBase Connectivity)

A Aplicaccedilatildeo para acessar um BD deve utilizar a API JDBC contida no

pacote javasql

Por meio da classe DriverManager seleciona-se o driver de acesso ao BD

que seraacute utilizadoO driver passa a oferece uma interface padronizada para

a Aplicaccedilatildeo implementando em Java ou de forma nativa o acesso ao BD

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 64: Aplicacoes Com Netbeans

Instalaccedilatildeo de uma fonte JDBCODBC em plataforma Windows

1 Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC

2 Clicar no botatildeo adicionar (DNS do usuaacuterio) para criar uma nova ponte de um

banco de dados

3 Selecionar Driver adequado (Driver do Microsoft Access por exemplo)

4 Preencher a caixa de diaacutelogo com um nome para a Fonte de Dados do BD e a

localizaccedilatildeo do servidor

5 Clicar no botatildeo Selecionar para definir o BD a ser usado

Podemos construir uma aplicaccedilatildeo usando o seguinte roteiro

1ordm) Importar o pacote javasql

import javasql

2ordm) Carregar o driver de acesso ao BD ( ponte JDBC-OBDC)

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 65: Aplicacoes Com Netbeans

ClassforName( sunjdbcodbcJdbcObdcDriver )

4ordm) Obter uma conexatildeo com o BD (BD Access IJPlanetas)

Connection conexatildeo =

DriverManagergetConnection( jdbcodbcIJPlanetas )

5ordm) Por meio da conexatildeo realizada devemos obter uma instacircncia de um

objeto Statement PreparedStatement ou CallableStatement para passar

comandos SQL ao BD

Statement stmt= conexatildeocreateStatement()

6 Criar objetos para executar operaccedilotildees no BD (execute (String) executeQuery

(String) ExecuteUpdate(String) executeBatch())

int reg =stmtexecuteUpdate( delete from planeta where nome= Maria )

ResultSet rs = stmtexecuteQuery( select nome from planeta )

7 Algumas operaccedilotildees retornam resultados do BD (um objeto Resultset conjunto

de registros) os quais devemos exibir ou processar

while( rsnext() ) move o curso de registros

String Nome=rsgetString( nome ) obteacutem o valor do campo

nome da tabela

Systemoutprintln(Nome)

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 66: Aplicacoes Com Netbeans

8 Quando natildeo precisar mais dos objetos obtidos libere-os

rsclose()

stmtclose()

9 Apoacutes todas as operaccedilotildees encerre a conexatildeo com BD

conexatildeoclose()

Exemplos de meacutetodos de ResultSet

rsabsolute(3) move cursor para linha

rsupdateString( Nome Maria ) atualiza nome

rsupdateRow() atualiza linha na tabela

rsmoveToInserRow() insere nova linha

rsupdateInt(2 3535) atualiza coluna 2

Principais Comandos SQL

Segue exemplos dos principais comandos que seratildeo utilizando em uma

aplicaccedilatildeo que realizar operaccedilotildees em um Banco de Dados

Tabela

Brasil

idade Estado Pop Sit

Brasiacutelia DF 2000000 Cheio

SELECT - realiza consultas

Select cidade estado FROM Brasil WHERE pop gt 1000

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 67: Aplicacoes Com Netbeans

INSERT - Insere um registro

INSERT INTO Brasil (cidade estado) VALUES ( Cid Est )

UPDATE - Modifica um registro

UPDATE Brasil SET Sit = Cheio WHERE Pop gt 1000

DELETE - Excluir um registro

DELETE FROM Brasil WHERE cidade = BSB

Construccedilatildeo de Aplicaccedilotildees - Acessando um Banco de Dados Access

Este exemplo realiza uma consulta na tabela denominada Relacao com os

campos Nome e Id Vamos partir do princiacutepio de que a ponte JDBC-OBDC jaacute foi

criada com o nome BDAccess

import javasql pacote para trabalhar com BD

public class LeBDAccess

public static void main(String args[])

try tratamento de erros

Usuaacuterio

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 68: Aplicacoes Com Netbeans

ClassforName(sunjdbcodbcJdbcOdbcDriver)seleciona Driver

conecta com BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

objeto comandos SQL

Statement stmt= concreateStatement()

Comando SQL

ResultSet rs=stmtexecuteQuery(select from Relacao)

verifica se existem registros

while(rsnext())

obteacutem o valor armazenado no campo Nome da tabela

Relacao

String nome=rsgetString(nome)

obteacutem o valor arqmazenado no campo da Id

int id=rsgetInt(id)

imprime o conteuacutedo da variaacutevel

Systemoutprintln(Nome+nome+ Ident+id)

rsclose() fecha ponte

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

Systemoutprintln( erro de conexatildeo + egetMessage())

mensagem de erro

Senha

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 69: Aplicacoes Com Netbeans

catch(ClassNotFoundException e)

Systemoutprintln(Driver natildeo encontrado)

JDBC no NetBeans

O NetBeans natildeo possui ferramentas que permitam criar visualmente

componentes em um programa para manipular os dados de uma tabela a

exemplo dos existentes em outras ferramentas em outras Linguagens de

programaccedilatildeo

Para trabalhar com Banco de Dados eacute preciso fazecirc-lo via coacutedigo que

deveraacute ser inserido dentro do meacutetodo actionPerformed de um JButton

Cria-se o Formulaacuterio contendo os componentes visuais para

mostrar e manipular os dados da tabela do Banco de Dados Dentre estes

componentes estatildeo os bototildees ou menus os quais seratildeo os responsaacuteveis por

executar os coacutedigos para realizar uma determinada operaccedilatildeo consulta inserccedilatildeo

alteraccedilatildeo ou exclusatildeo em um BD

Depois de criada a parte visual devem ser implementados os

coacutedigos nos bototildeesmenus

OBS - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o

Nome PBD_Nomes que representa uma conexatildeo com um Banco de Dados

Access contendo uma Tabela com o nome TabFicha contendo os campos

(Matricula Tipo NuacutemeroChave Primaacuteria Nome Tipo Texto)

- Parte Visual do Programa

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 70: Aplicacoes Com Netbeans

a) Coacutedigos para Inserir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

stmtexecuteUpdate( insert into TabFicha (Matricula Nome) values ( +

CadMat + +

CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 71: Aplicacoes Com Netbeans

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

b) Coacutedigos para Consultar que devem ser inseridos em um JButtonMenu

boolean consulta=true variaacutevel auxiliar utilizada para informar se houve sucesso

na consulta

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(

Select from TabFicha where nome= + ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf( Matricula ))

jTextField3setText(RSgetString(Nome))

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 72: Aplicacoes Com Netbeans

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

c) Coacutedigos para Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(

update TabFicha set Nome= +CadNome+ Matricula=

+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 73: Aplicacoes Com Netbeans

d) Coacutedigos para Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Excluidos)

else JOptionPaneshowMessageDialog(thisDados natildeo

Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 74: Aplicacoes Com Netbeans

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

NOTAAntes de inserir os coacutedigos eacute preciso importar os pacotes para

trabalhar com Banco de Dados e exibir caixa de mensagens

Localize o coacutedigo de criaccedilatildeo da classe Ex

Public Class

Antes deste comando insira os seguintes coacutedigos

import javasql

import javaxswing

Exemplo Completo

Crie uma aplicaccedilatildeo para cadastrar a Matricula e os Nomes dos

Funcionaacuterios de uma Empresa

1 Clique no Menu File New Selecione Java GUI Forms JFrame

Forms clique no botatildeo Next Na janela que se abre no campo Name

digite SistCadFunc e clique no Botatildeo Finish

2 Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes

componentes dois JLabel (Nome e Matricula) dois JTextField e um

JButton (Salvar)

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 75: Aplicacoes Com Netbeans

3 A parte visual esta construiacuteda falta o coacutedigo para salvar os dados

4 Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha)

com os campos Matricula (Tipo NumeacutericoChave Primaacuteria) e Nome

Tipo

Texto

5 Devemos criar a Ponte JDBCODBC abra o Painel de Controle

Ferramentas Administrativas

Fontes de Dados ODBC

clique no Botatildeo

Add

Selecione o Driver p BD Access

clique no botatildeo Concluir

no

campo Nome da Fonte de Dados digite PBD-Nomes

clique no botatildeo

Selecionar

Procure o BD criado (BDCadastro) e clique no Botatildeo OK

OK OK

JTextFiled1 JTextField2

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 76: Aplicacoes Com Netbeans

6 Criado o BD e a Ponte ODBC volte para a sua aplicaccedilatildeo no NetBeans e

decirc um duplo clique no JButton (Salvar) para codificar a conexatildeo

Depois de private void jButton1ActionPerformed(javaawteventActionEvent

evt) digite

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con = DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt = concreateStatement() objeto comdo sql

String CadNome = jTextField1getText() obteacutem nome digitado

int CadMat=IntegerparseInt( jTextField2getText() )

Aspas Simples e Aspas Duplas

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 77: Aplicacoes Com Netbeans

stmtexecuteUpdate(insert into TabFicha (MatriculaNome) values ( +

CadMat + + CadNome + ) )

JOptionPaneshowMessageDialog( this Dados Salvos )

conclose() fecha conexatildeo com BD

catch( SQLException e) trata os erros

JOptionPaneshowMessageDialog(this Erro Cmdo SQL +

egetMessage() )

catch( ClassNotFoundException e)

JOptionPaneshowMessageDialog( this Driver natildeo encontrado )

7 Compile Execute

8 Realizando operaccedilotildees de Consulta Alteraccedilatildeo e Exclusatildeo em BD

Insira trecircs Bototildees para executar as operaccedilotildees restantes no Banco de

Dados (Consulta Alteraccedilatildeo e Exclusatildeo) um JLabel para exibir o Texto Nome

para ConsultaExclusatildeo supondo que estas operaccedilotildees seratildeo feitas atraveacutes do

campo Nome e insira tabeacutem um JTextField para p usuaacuterio poder digitar o

Nome ou crie um novo Form contendo os JLabel JTextField e JButton sendo

que o mesmo deveraacute ser chamado por outro Form atraveacutes de um JMenurBar

Supondo que foram inseridos os novos componentes da seguinte forma

Aspas Duplas e Aspas Simples

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 78: Aplicacoes Com Netbeans

Basta dar um duplo clique no botatildeo desejado e inserir o respectivo coacutedigo

para a respectiva operaccedilatildeo

Consultar

boolean consulta=true

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

ResultSet RS= stmtexecuteQuery(Select from TabFicha where nome= +

ConsNome + )

while (RSnext())

int Mat= RSgetInt(Matricula)

jTextField2setText(StringvalueOf(Mat))

jTextField3setText(RSgetString(Nome))

Aspas Simples e Aspas Duplas

Aspas Duplas e Aspas Simples

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 79: Aplicacoes Com Netbeans

consulta=false

JOptionPaneshowMessageDialog(thisDados Encontrados)

if (consulta) JOptionPaneshowMessageDialog(thisDados Natildeo

Encontrados)

RSclose ()

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Alterar

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ConsNome= jTextField1getText()

int CadMat=IntegerparseInt(jTextField2getText())

String CadNome=jTextField3getText()

int registro = stmtexecuteUpdate(update TabFicha set Nome= +CadNome+

Matricula=+CadMat+ where Nome= + ConsNome + )

if (registro=0) JOptionPaneshowMessageDialog(thisDados Alterados)

else JOptionPaneshowMessageDialog(thisDados Natildeo Alterados)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 80: Aplicacoes Com Netbeans

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

Excluir

try tratamento de erros

ClassforName(sunjdbcodbcJdbcOdbcDriver)busca Driver

conecta no BD

Connection con=DriverManagergetConnection(jdbcodbcPBD-

Nomes)

Statement stmt= concreateStatement()objeto comdo sql

String ExcNome= jTextField1getText()

int registro=stmtexecuteUpdate(delete from TabFicha where Nome= +

ExcNome + )

if (registro=0)

JOptionPaneshowMessageDialog(thisDados Excluidos)

else

JOptionPaneshowMessageDialog(thisDados natildeo Excluidos)

stmtclose()

conclose() fecha conexatildeo com BD

catch(SQLException e) trata os erros

JOptionPaneshowMessageDialog(thisErro Cmdo SQL

+egetMessage())

catch(ClassNotFoundException e)

JOptionPaneshowMessageDialog(thisDriver natildeo encontrado)

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 81: Aplicacoes Com Netbeans

9 Compile Execute

OBS Como os comando de conexatildeo com o Banco de Dados estatildeo se repetido os mesmos poderiam ser implementados dentro de uma funccedilatildeo e serem executados atraveacutes de uma chamada desta funccedilatildeo quando se desejar estabelecer uma conexatildeo com o banco de dados para realizar uma determinada operaccedilatildeo em suas tabelas diminuindo a quantidade de coacutedigo a ser digitado

copy 2004 Joseacute Valney Melo Barbalho - MBA em GSI jvmbibestcombr todos os direitos reservados O texto e coacutedigo-fonte apresentados podem ser referenciados e utilizados desde que expressamente citada esta fonte e o creacutedito do autor A informaccedilatildeo aqui apresentada apesar de todo o esforccedilo para garantir sua precisatildeo e correccedilatildeo eacute oferecida como estaacute sem quaisquer garantias expliacutecitas ou impliacutecitas decorrentes de sua utilizaccedilatildeo ou suas consequumlecircncias diretas e indiretas

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only

Page 82: Aplicacoes Com Netbeans

This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only