Post on 10-Aug-2015
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
- 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
This document was created with Win2PDF available at httpwwwdaneprairiecomThe unregistered version of Win2PDF is for evaluation or non-commercial use only