Manual Netbeans
Manual Netbeans
Manual Netbeans
O Netbeans um ambiente integrado de desenvolvimento (IDE) que permite ao programador criar programas utilizando recursos grficos. Para trabalhar com o NetBeans necessrio ter instalado, anteriormente em sua mquina uma das verses do JDK (Java), preferencialmente uma verso igual ou superior a J2SDK1.3.1.
Instalando o Netbeans No mesmo site http://java.sun.com/ , faa tambm o download do NetBeans, caso no tenha um CD de instalao. Aps o download, d um duplo clique no cone criado e siga os passos mantendo os padres de instalao. Segue como exemplo algumas ilustraes da instalao da verso 3.5.1, a verso 4.0 segue o mesmo padro:
NOTA: Antes de iniciar a construo dos exemplos interessante conhecer um pouco da sintaxe bsica da linguagem para facilitar o seu entendimento.
3. Conhecendo a IDE
- Depois de instalado, execute o NetBeans clicando no cone na rea de trabalho ou clicando no menu iniciar Programas NetBeans NetBeans
- O mesmo dever exibir uma tela como a mostrada a seguir ou algo parecido, isto vai depender do tipo da instalao/ SO/ Nmero de vezes que o mesmo j tenha sido executado:
Opes de trabalho Barra de Menu
Pgina de Entrada
Janela de compilao
- Passos: 1 - Clique no menu File New: ser exibida uma tela como esta:
MDI Aplication
composta de um formulrio com um menu e que aceita a abertura de outros formulrios 4 - Clique no boto NEXT:
5 - D um nome para o seu Aplicativo e no Campo Folder entre com um nome que ser a pasta onde a aplicao ficar armazenada - Package. Clique no boto Create Next:
Nome da Aplicao
Nome da Pasta/Package
Cria a Pasta
6 - Ser mostrada uma tela informando o nome da Aplicao e o nome do Package criado, a superclasse que ser extendida e as classes a serem implementadas. No mude as opes padro, clique no boto Next:
A IDE abrir 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 rea de visualizao 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
Form de Trabalho
Propriedade
Compile ou Pressione F9
Execute ou Pressione F6
Na execuo da aplicao o formulrio / janela abre exibindo apenas o menu, isto porque no tem nenhum componente, verifique o menu sair, observe que o mesmo j foi implementado pelo NetBeans. Agora vamos inserir alguns componentes, procure deixar a sua aplicao parecida com a seguinte Tela no modo formulrio. (Lembre-se que possvel alternar entre as telas de cdigo e formulrio clicando no menu View e selecione Form Editor/Source Editor):
Componentes Swing
3.5 Trabalhando com componentes: - Na janela no canto superior direito, que mostra os componentes da aplicao, clique o Boto direito do mouse sobre BorderLayout e selecione Set Layout AbsolutLayout
NOTA: - Esta mesma operao pode ser efetuada clicando-se com o boto direito do mouse sobre a rea do Formulrio e selecionando SetLayout AbsolutLayout.
- necessrio modificar o Layout para que se possa colocar os componentes (botes, Labels, etc) na posio desejada, isto porque o Formulrio (JFrame/Frame) quando criado tem como padro o Layout BorderLayout que
trabalha de forma diferente. Mais a frente ser abordado de uma forma melhor sobre os Layout.
- Passe o mouse sobre os componentes da Aba Swing e observe que os mesmos so selecionados, clique no correspondente ao JLabel e clique no Formulrio:
- Na Janela Propriedades clique em Text e insira o texto que deseja que aparea no JLabel:
- Insira outros componentes e mude suas propriedades realizando experincias, compilando e executando, para visualizar os resultados.
Cria um Projeto
Selecione General
Java Application
Next
New File
JFrame
Next
Na nova janela que se abre digite o nome do Programa e clique no Boto Finish Insira os componentes desejados
NOTA: Os exemplos que sero apresentados foram implementados utilizando o NetBeans 3.5.1, que se diferencia visualmente muito pouco em relao a verso 4.0 , posto que sero exemplos simples. Se for utilizar a verso 4.0 os passos a serem executados so os mesmos, salvo exceo quanto criao do Projeto que j foi demonstrado.
Assunto: Aplicaes Grficas com Swing Objetivo: criar aplicaes Grficas utilizando Swing
Nova famlia de componentes com funcionalidade ampliada e grande capacidade de configurao O seu propsito permitir a criao de interfaces versteis e sofisticadas Surgiu em 1997 com a JFC ( Java Foundation Classes), com o Java 2, que engloba: o Componentes Swing o Compatibilidade com mltiplas Look and Feel` - peles o Biblioteca de acessibilidade o Biblioteca Java 2D o Compatibilidade com `Drag and Drop` monitores e teclados especiais
Principais Componentes
Os seus componentes so semelhantes ao da AWT (Abstract Window Toolkit), pois o modelo de eventos o mesmo.
Diferenas: Componentes Swing so mais flexveis e mais numerosos No utilizam cdigo nativo, seus nomes iniciam com um J A base para uma aplicao o JFrame ou JWindow ( janela) ou a classe JApplet (miniapplicativos). JFrame no um mero container, mas um painel especial que agrega trs outros componentes em camadas Destes o que nos interessa o ContentPane (painel de contedo), onde vamos inserir os demais componentes:
Mtodos especficos:
String getText()
b) JButton: um boto simples que pode ser criado com ou sem rtulo.
Mtodos especficos:
String getText()
c) JTexField e JTextArea
TextField: caixa de entrada de texto, possibilita a entrada e a edio de uma linha de texto. TextArea: caixa de entrada de texto com mltiplas linhas. Exibe barra de rolagem horizontal e vertical.
principais mtodos:
String getText()
d) JList e JCombobox
JList: caixa de lista que permite a exibio de uma lista de itens que no podem ser editados diretamente pelo usurio. JCombobox: implementa uma lista de itens em que um nico item selecionado exibido. principais mtodos:
retorna ndice do item selecionado retorna o nome do item selecionado ajusta o item selecionado para str
Tamanho do componente
Mover componente
void setForeground(Color x)
Cor do componente
void setBackground(Color y)
void disable()
Desabilitando componente
void enable()
Habilitando componente
Gerenciadores de Layout
Gerenciamento de layout ( Layout Management ) o processo de determinar o tamanho e a posio dos componentes na janela grfica do programa, ou seja determinar onde os componentes ir ficar guiando a maneira como os elementos de interface sero dispostos dentro do container (Frame, Panel,Window). Existe basicamente os seguintes tipos de layout:
Simplesmente posiciona os componentes da esquerda para a direita, criando novas linhas se necessrio. EX:
b) BorderLayout
o Padro: Divide a janela em cinco reas nas quais os componentes podem ser exibidos: norte, sul, leste, oeste e centro.
c) CardLayout Permite apresentar dois ou mais componentes (geralmente painis) compartilhando o mesmo espao de apresentao. Funciona como uma pilha de cartas onde apenas uma fica visvel. - Cria-se um Painel fixo de Controle e um genrico (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 Panel.java por: setLayout( new GridLayout(3,1));
e) GridBagLayout
o mais flexvel dos gerenciadores de layout, permite colocar componentes em grades de colunas, sendo possvel um componente ocupar mais de uma coluna ao mesmo tempo. As linhas tambm no precisam necessariamente ter os mesmos tamanhos, ou seja, voc pode configurar diferentes larguras e alturas de acordo com a necessidade. No entanto, o mais difcil de ser implementado.
NetBeans
1. Crie uma aplicao para somar os valores de duas Notas Fiscais a serem informados pelo usurio:
Nesta Aplicao utilizaremos dois JTextField (onde o usurio ir digitar os valores) um JLabel (mostrar o resultado da soma) e um boto a ser clicado para efetuar a soma Abra o NetBeans Java GUI Forms Clique no Menu File Selecione JFrame Form New D um Duplo clique em
Na nova janela que se abre Digite JCalculadora" seu projeto ser iniciado
Antes de inserir os componentes, devemos modificar o Layout para AbsoluteLayout ou para NullLayout, para podemos criar o nosso Layout.
NOTA: - O AbsoluteLayout um gerenciador de Layout criado especificamente para o NetBeans, portanto se for utiliza-lo sem o NetBeans ter de acrescentar o respectivo pacote e distribu-lo juntamente com o seu programa. Caso contrrio o mesmo no executar corretamente. - O Null Layout no um gerenciador de Layout, mas corresponde situao em desativado uso dos gerenciadores, neste caso a posio dos componentes explicitamente definida atravs de mtodos especficos que a ferramenta se encarrega de manipular, mas os mesmo no vale para o Formulrio (Frame/JFrame), onde se faz necessrio a utilizao do mtodo setBounds: Ex: setBounds(10,10,300,400); // abre o tela na posio largura 10, altura 10, com um largura de 300 e altura 400.
Na janela, no canto superior direito, Clique com o boto direito do mouse sobre JFrame setLayout clique em NullLayout
Na janela do Centro do vdeo, embaixo da Aba Swing , existem vrios cones representando os respectivos componentes, passe o mouse sobre os mesmos e aparecer 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:
Somar
A parte visual j foi criada precisamos implementar o cdigo no boto para efetuar a soma ( pegar os nmeros e som-los) D um Duplo clique no boto e na janela de cdigo que aparece digite:
double num1=Double.parseDouble(jTextField1.getText()); // converte texto para double double num2=Double.parseDouble(jTextField2.getText()); double result = num1 + num2; String R= String.valueOf(result); //Converte o Resultado para String
Observe que os nomes dos componentes (jLabel3) comeam com letras minsculas. Parte do Cdigo com a declarao dos componentes criados:
Se for utilizado o Layout AbsoluteLayout basta compilar e executar o programa para o mesmo funcionar normalmente. Mas, como o Layout que est sendo utilizado o Null Layout, quando o programa for executado a janela aparecer mostrando apenas a barra de titulo. Para a janela abrir e mostrar todos os componentes, devemos acrescentar o comando com a localizao e tamanho da janela
setBounds(10,10,300,400);
Se precisar voltar para o modo Form Editor clique no Menu View Editor ou Crt+8 Para ir para o cdigo clique no menu View Compile Menu Build
Form
Componente
Propriedade Valor
Propriedade Valor
Diminuir
Mnemonic
D M V
double num1=Double.parseDouble(jTextField1.getText()); // converte texto para double double num2=Double.parseDouble(jTextField2.getText()); double result = num1- num2; String R= String.valueOf(result); //Converte o Resultado para String
Repita o processo nos outros botes modificando apenas a operao matemtica. D um duplo clique no boto Limpar e digite:
jTextField1.requestFocus();
Para criar um arquivo que 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 extenso Calculadora.Bat , na mesma pasta do programa:
EXCLUSIVO do NetBeans,
sendo que para utiliza-lo efetivamente na sua aplicao, voc dever incluir no seu projeto o respectivo pacote, seno na execuo ocorrer erros, ou modifique o Layout para Null Layout e defina o tamanho de seu Frame/JFrame para que o
mesmo possa ser visualizado no tamanho desejado (setBounds()), caso contrrio o mesmo aparecer mostrando somente a barra de titulo.
OBS2: Para fins de agilizar a construo dos exemplos ser utilizado o Layout AbsoluteLayout , mas se for construir comercialmente um programa, o mesmo dever ter o Layout Null Layout .
JCombobox/JList a) Criar uma aplicao para informar qual a forma de pagamento selecionada pelo usurio: Cheque, Carto ou Dinheiro:
New
Clique no Form e modifique a propriedade Title do Form para Forma de Pagamento Clique no stimo cone JCombobox" e clique no Form, na Janela Propriedades clique em Model clique no Boto ... .
Na janela que se abre em Item digite: cheque e clique no boto Add , digite: carto e clique no boto Add , digite dinheiro e clique no boto Add , clique no boto OK
Insira um JLabel: clique no primeiro cone (JLabel) e clique no Form. Insira um JButton: clique no segundo cone (JButton) e clique no Form
A parte visual foi criada, falta o cdigo. Para saber qual a opo selecionada utilize o Mtodo: Object getSelectedItem().
String S= (String) jComboBox1.getSelectedItem();//converte em String jLabel1.setText("A opo escolhida foi: " + S); //exibe opo no Jlabel
Compile (F9) e Execute (F6). Se desejar tambm possvel saber o ndice: getSelectedIndex() A utilizao do JList idntica a vista a cima, basta substituir o mtodo getSelectedItem(), por getSelectedValue().
b) Criar uma aplicao para mostrar o tipo de motor (1.0/1.6/2.0) escolhido pelo usurio
Crie uma nova Template JFrame Form Motor , clique no Menu File
New ...
No Form que se abre Clique no sexto cone ButtonGroup e clique no Form para criar um grupo de radio e permitir a seleo de apenas uma opo Clique no quinto cone JRadioButton" e clique no Form, na janela
Propriedades selecione Text e digite Motor 1.0 . Selecione a propriedade buttonGroup e clique em buttonGroup1 , repita todo o processo por duas vezes para criar a opo Motor 1.6 e Motor 2.0 Insira um JLabel, Text: Opo Escolhida , no Form e um JButton, Escolher .
Para saber qual a opo esta marcada devemos utilizar o Mtodo boolean isSelected(), que devolve true ou false. D um duplo clique no boto para inserir o cdigo:
if (jRadioButton1.isSelected()) //verifica se a opo esta marcada -true jLabel1.setText("Motor escolhido: 1.0"); //exibe opo no JLabel if (jRadioButton2.isSelected()) //verifica se a opo esta marcada -true jLabel1.setText("Motor escolhido: 1.6"); if (jRadioButton3.isSelected()) //verifica se a opo esta marcada -true jLabel1.setText("Motor escolhido: 2.0");
Para saber qual o Texto exibido pelo JRadioButton basta utilizar o Mtodo: String getText(). Ex: String s=jRadioButton1.getText();
Componentes Especializados
Componentes Especializados
JOptionPane
Janelas de dialogo para informar ou solicitar confirmao de operaes ou efetuar a entrada direta de valores: Mensagens Entrada de Texto Janelas de Confirmao
Nas IDE como NetBeans possvel inserir um objeto visual, mas no possvel controlar as aes dos respectivos botes. Se quiser utiliza-los no Netbeans, insira-os dentro de um mtodo actionPerformed de um JButton. Exemplo: - Criar um Programa contendo um boto que ao ser pressionado exiba informaes sobre o programa: - Crie uma nova Template JFrame Form Mensagem , Menu File New ... - Mude o Layout para AbsoluteLayuot - Insira um JButton Mensagem , d um duplo clique para inserir o cdigo:
JOptionPane.showMessageDialog(this,"Programa 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 atravs do import .
- Procure no cdigo o comando que cria a classe, que est no incio do programa:
import javax.swing.*;
- Compile e Execute.
No Netbeans basta inserir o texto desejado na propriedade ToolTipText dos Componetes (JLabel, JTextField, JButton ...). JFileChooser
JFileChooser arq= new JFileChooser(); int Result=arq.showOpenDialog(this); if(Result==JFileChooser.APPROVE_OPTION){ File arquivo= arq.getSelectedFile(); //Classe para Arquivos
System.out.println(arquivo); Arquivo } } }
//Imprime nome do
FileReader/FileWrite
FileInputStream / FileOutputStream
while ((int c=arqin.read()) !=-1){ // l Entrada.txt out.write(c); // grava em Saida.txt System.out.write(c); // direciona para o vdeo } out.write(p); // gravar a String no final do arquivo in.close(); // fecha os arquivos out.close(); } }
Exemplo: criar um programa que permita selecionar um arquivo de texto, .txt e mostrar o contedo em um JTextArea:
JFrame Form
try{
File arquivo;
JFileChooser arq= new JFileChooser(); // objetos de seleo de arquivo int Result=arq.showOpenDialog(this); // mostra a janela de seleo de arquivo if(Result==JFileChooser.APPROVE_OPTION){ //verifica se foi seleciona um arquivo arquivo = arq.getSelectedFile(); //verifica o arquivo selecionado int c; //varivel para receber os Bytes do arquivo String Texto=""; //varivel para receber os dados do arquivo
FileReader inArq = new FileReader(arquivo.getPath()); //abre o arquivo para leitura while((c = inArq.read())!=-1){ arquivo (-1) Texto=Texto+(char)c; // transforma o Byte lido em um char } //final do while jTextArea1.setText(Texto); // exibe no JTextArea o contedo lido do arquivo //l Byte por Byte at o final do
inArq.close(); } // final do if } catch (IOException ioe) { // verifica qual foi o erro/exceo JOptionPane.showMessageDialog(this,"erro ao abrir o arquivo"); // mensagem de erro }
Insira, antes da declarao da classe public class , no comeo do programa: import java.io.*; import javax.swing.*;
possvel acrescentar um outro boto para salvar novos texto que o usurio pode inserir no JTextArea:
try{ File arquivo; JFileChooser arq= new JFileChooser(); int Result=arq.showSaveDialog(this); if(Result==JFileChooser.APPROVE_OPTION){ arquivo = arq.getSelectedFile(); //Classe para Arquivos FileWriter inArq = new FileWriter(arquivo.getPath()); inArq.write(jTextArea1.getText()); // l o arquivo inArq.close(); } }catch(IOException ioe) { JOptionPane.showMessageDialog(this,"erro ao abriri o arquivo"); } // Add your handling code here: }
Estes comandos podem ser inseridos em um Menu. A primeira aplicao criada como exemplo, representa a criao de editor de texto j composto de um Menu, mas que no possui os respectivos cdigos para efetuar as operaes de abrir um documento e salv-lo. Experimente implementar os respectivos cdigos nessa para efetivamente criar um editor de texto.
JEditorPane
Painel de Contedo uma rea de texto especializada na exibio e edio de vrios tipos de contedo: texto simples(text/plain), HTML(text/html) e RTF Rich Text Format(text/rtf). Exemplo: Criar um Programa que permita exibir um arquivo com extenso .html ou .htm :
JFrame Form
Insira um objeto JScrollPane no Form e insira dentro deste um objeto JEditorPane, da Aba Swing (Other)
int result=arq.showOpenDialog(this); if(result==JFileChooser.APPROVE_OPTION){ try{ File arquivo= arq.getSelectedFile(); URL pagina= new URL("file:"+arquivo.getPath()); jEditorPane1.setPage(pagina); } catch(MalformedURLException mue) { JOptionPane.showMessageDialog(this,"Erro na pgina"); }catch( IOException ioe){ JOptionPane.showMessageDialog(this,"Erro no arquivo"); } }
Insira a importao dos pacotes, antes da declarao da classe public class : import javax.swing.*; import java.net.*; import java.io.*;
Compile e Execute.
Mltiplos Formulrios.
SUMRIO Introduo Desenvolvimento: o Criando Mltiplos Formulrios Concluso Criando Mltiplos Formulrios - Menus
Para se construir uma Aplicao contendo vrios Formulrios preciso cri-los em separados e cham-los em um Formulrio Principal atravs de Botes ou de Menus. No Formulrio Principal a chamada dos outros formulrios consiste em se criar instncias dos respectivos formulrios que se deseja exibir, utilizando o mtodo show(), ou o mtodo setVisible(boolean). Na criao de Formulrios utilizando o NetBeans ( e outras IDE), a ferramenta cria os comandos necessrios para o fechamento do Formulrios, desta forma se o Formulrio Principal cham-lo e este aps, ser aberto, for fechado provocar o fechamento da aplicao. Para evitar este problema devemos modificar estes comandos para podermos fechar o formulrio sem fechar a Aplicao.
Exemplo
Criar uma Aplicao contendo um Menu que exibi os Formulrios de Cadastro de Clientes e de Veculos
New
Boto Next
em Name
Na Aba Swing, clique no cone JMenuBar e clique no Form Propriedades clique em Text Menu)
na Janela
Clique com o boto direito do mouse sobre o Menu criado na janela propriedade clique em Text
Add JMenuItem
clique novamente com o boto direito do mouse sobre o Menu criado Add JMenuItem clique em Text e digite Veculos.
Observe que os SubMenus no aparecem no Form este sero exibido na execuo do programa, mas apara o objeto criado no Form. - Objeto JMenuItem criado no Form, o mesmo no aparece no Form durante a construo do programa. S aparece na Execuo.
- Texto do submenu que ser exibido para o usurio na execuo 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 Formulrios Clientes e Veculos. Crie um Novo Form Clique no Menu File Name digite Clientes clique no boto Finish New clique no Boto Next em
Modifique o Layout para AbsoluteLayout e insira trs JLabels para exibir os rtulos Nome , Fone , CPF e trs JTextFields para podermos digitar/exibir os dados.
Devemos modificar o comando responsvel pelo fechamento do Form, para que no feche a Aplicao. Clique com o boto direito do mouse no Form e clique em Goto Source ou presiione Ctr-3 , procure o comando, que deve estar antes do mtodo main: private void exitForm(java.awt.event.WindowEvent evt) {
Apague o comando:
System.exit(0);
Volte para o primeiro Form (SistLocao), para isto clique na Aba SistLocao, localizada na janela principal do Form
D um duplo clique em JMenuItem1, se o mesmo no estiver aparecendo clique no menu criado, d um duplo clique no JMenuItem1, para inserir o evento responsvel pela chamada do Form Clientes.
Na janela de cdigo que se abre, procure o seguinte comando: private void jMenuItem1ActionPerformed
Se tiver criado a Template com outro nome substitua o nome Clientes por este nome. E dentro do mtodo, depois de // Add your handling code here: , digite: FormCliente.show(); //exibio do Formulrio Clientes
Compile e Execute.
Repita os mesmos passos para criar o Form Veculos e para exibi-lo. Clique no Menu File no boto Finish Mude o Layout e insira os componentes (JLabel e JTextField), v para o cdigo e modifique o comando System.exit(0) para setVisible(false) Volte para o Form SistLocao e d um duplo clique em JMenuItem2, antes do respectivo mtodo actionPerformed instancie o Form: Veculos FormVeiculo = new Veculos(); //instanciao do Form New Next digite o Nome Veculos clique
9. Applets
Funcionamento e Estrutura
Assunto: Applets: Funcionamento e Estrutura Objetivo: escrever mini-aplicativos java que rodam na internet e intranet.
Applets
So pequenos programas Java que podem ser inseridos dentro de pginas HTML. interagir com o usurio que a consulte pode executar tarefas complexas, como realizar clculos e apresentar grficos, sons e imagens em movimento.
Applets: Funcionamento
Para inserir uma applet numa pgina HTML, usamos a diretiva <applet>, que deve apresentar pelo menos trs parametros: code, width e height. Assim, a especificao mais simples tem a forma:
[java applet]: nome da classe principal do programa Java AloPessoal.class [largura] e [altura]:indicam a largura e a altura em pixels da rea dentro da pgina reservada para a apresentao da applet. uma applet deve conter ao menos uma classe pblica, e essa classe pblica deve estender a classe Applet. A classe Applet faz parte do package applet:
import java.awt.*; //importao dos componentes import java.applet.*; //importao da classe Applet
public class AloPessoal extends Applet { public void paint(Graphics g){ //mtodo para desenho
Este programa deve ser compilado, e aps a depurao dos erros informado o arquivo gerado: .class, no arquivo html atravs do parmetro code (code = ArquivoJava.class) informado qual o arquivo Java a ser utilizado na pgina HTML. Arquivo Html (com um nome qualquer, Ex: Alo.html ):
Parmetros adicionais: o codebase: URL do diretrio que contm as classes compiladas (bytecodes) do applet o name: Um nome que identifica uma particular instncia de um applet dentro de uma pgina HTML (til para comunicao entre applets). o align: especifica um alinhamento para a rea da applet dentro da pgina. Anlogo ao alinhamento de imagens.
o alt: Texto a ser exibido na rea da applet durante o carregamento, ou na impossibilidade de carregar a applet.
Applets: Estrutura
A classe Applet define quatro mtodos bsicos para controlar a execuo e interao com o browser: a) init(): executado quando a applet e carregada ou recarregada adio de
componentes, recebimento de parmetros de execuo e preparo da applet b) start(): executado aps o mtodo init ou ao ser recarregada quando necessrio assegurar alguma condio especial. c) stop(): executada quando o usurio muda de pgina permanecendo na memria, ou fecha o browser. d) destroy(): executada quando a applet for removida da memria. paint(), definido pela classe Component da AWT: atualiza a exibio da applet A maneira mais simples de se construir uma applet por meio do mtodo paint o contedo apresentado s depende desse mtodo. deve ser utilizado
A criao de Applet utilizando o Netbeans 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 cdigos para executar a pgina web.
1) Criar um Applet que permita ao usurio digitar dois nmeros reais e mostrar o resultado da soma destes:
A criao de Applet no Netbeans feita atravs de Templates, possvel trabalhar com a Classe Applet do pacote AWT ou com a classe JApplet do pacote Swing. O Exemplo que se segue, ser implementado utilizando o JApplet. Clique no menu File Boto Next New Java GUI Form JApplet Form clique no
Antes de inserir os componentes modifique o Layout para NullI Layut , para poder organizar os componentes da maneira desejada. Clique com o boto direito do mouse, na janela no canto superior direito, em JApplet e selecione Null Layout Insira trs JLabel ( Nmero 1: e Nmero 2: ), dois JTextField, quatro
Para inserir um atalho para o boto, digite a letra desejada na propriedade Mnemonic A parte visual foi criada, falta os eventos dos botes. D um duplo clique boto Somar e digite:
float op1,op2, result; // variveis auxiliares //"pega" o nmero digitado e o converte para float op1=Float.parseFloat(jTextField1.getText()); op2=Float.parseFloat(jTextField2.getText()); result=op1+op2; //converte o resultado em String e exibe jLabel3.setText(String.valueOf("Resultado: " + result)); jTextField1.setText(" "); jTextField2.setText(" "); jTextField1.requestFocus(); //muda o foco para o JTextField 1 //Limpar o JTextField
Compile e Execute. Observe que ao executar o programa o mesmo mostrado no Applet Viewer, um aplicativo do JDK construdo para auxiliar na implementao 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 d um duplo clique no arquivo com o mesmo nome do programa, mas do tipo HTML
Se desejar modifique a rea destinada a mostrar o applet no browser, modifique no arquivo HTML os valores dos cdigos WIDTH (Largura do Apllet) e HEIGHT( Altura). Ex:
codebase=..
code="Applets/JCalculadora.class"
width=350
Para implementar as operaes matemticas (eventos) dos outros botes, d um duplo clique no boto e digite o mesmo cdigo do boto soma e modificando apenas o sinal de soma para a operao desejada. Exemplo par ao boto Subtrair
float op1, op2, result; // variveis auxiliares // "pega" o nmero digitado e o converte para float op1 = Float.parseFloat( jTextField1.getText() ); op2 = Float.parseFloat( jTextField2.getText() ); result = op1- op2; //converte o resultado em String e exibe
jLabel3.setText( String.valueOf( "Resultado: " + result) ); jTextField1.setText(" "); jTextField2.setText(" "); jTextField1.requestFocus(); //muda o foco para o JTextField 1 //Limpar o JTextField
2) Crie um Applet que informa o valor do emprstimo, que calculado conforme o valor do saldo mdio digitado pelo usurio (at R$ 1000,00 at 2500 30% do Saldo Mdio, acima de R$ 2500 zero, de R$ 1001
Crie um Novo Programa: File New Java GUI Form JApplet digite o nome Emprstimo Finish
Clique com o Boto direito do mouse no Form, selecione setLayout e clique em Null Layout . Insira dois JLabel no Form, modificando as propriedade Text para Saldo Mdio e Valor do Emprstimo , insira um JTextField e um JButton,
saldo = Float.parseFloat(jTextField1.getText()); // pega o valor digitado e converte //verificao dos valor digitado e do emprstimo que pode ser concedido if (saldo<1000) jLabel2.setText("Valor do Emprstimo: Zero"); if ((saldo>=1000) & (saldo<=2500)) jLabel2.setText("Valor do Emprstimo: " + saldo * 0.3); if (saldo>2500) jLabel2.setText("Valor do Emprstimo: " + saldo * 0.5); }catch (Exception e){ valor vlido jLabel2.setText("No um Valor Vlido"); } //exibe mensagem caso no seja digitado um
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 comunicao de cdigo Java puro com Banco de dados uma tarefa muito difcil, devido a enorme quantidade de bancos de dados, existente no mercado, com linguagens proprietrias. A plataforma Java permite o acesso a banco de dados por meio de uma API (Application Programming Interface) chamada JDBC (Java
Database Connectivity). uma interface entre a linguagem Java e outra linguagem que todos os bancos de dados suportam. O Objetivo da JDBC possibilitar o uso de dados existentes em SGBDR remotos. Utiliza o SQL (Structured Query Language), linguagem destinada s operaes dos SGBDR.
Arquitetura
muito parecida com o padro ODBC (Open DataBase Connectivity). A Aplicao para acessar um BD deve utilizar a API JDBC, contida no pacote java.sql. Por meio da classe DriverManager, seleciona-se o driver de acesso ao BD que ser utilizado.O driver passa a oferece uma interface padronizada para a Aplicao, implementando em Java ou de forma nativa o acesso ao BD.
1. Acessar o painel de controle e ativar o aplicativo Fonte de Dados ODBC; 2. Clicar no boto adicionar (DNS do usurio) 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 dilogo com um nome para a Fonte de Dados do BD e a localizao do servidor. 5. Clicar no boto Selecionar para definir o BD a ser usado.
import java.sql.*;
Class.forName( sun.jdbc.odbc.JdbcObdcDriver );
4) Obter uma conexo com o BD: (BD Access: IJPlanetas) Connection conexo = DriverManager.getConnection( jdbc:odbc:IJPlanetas );
5) Por meio da conexo realizada, devemos obter uma instncia de um objeto Statement, PreparedStatement ou CallableStatement, para passar
6. Criar objetos para executar operaes no BD (execute (String), executeQuery (String), ExecuteUpdate(String), executeBatch()):
int reg =stmt.executeUpdate( delete from planeta where nome= Maria ); ResultSet rs = stmt.executeQuery( select nome from planeta );
7. Algumas operaes retornam resultados do BD (um objeto Resultset de registros), os quais devemos exibir ou processar:
conjunto
while( rs.next() ) { //move o curso de registros String Nome=rs.getString( nome ); nome da tabela System.out.println(Nome); } // obtm o valor do campo
rs.close(); stmt.close();
conexo.close();
rs.absolute(3); //move cursor para linha rs.updateString( Nome , Maria ); //atualiza nome rs.updateRow(): //atualiza linha na tabela rs.moveToInserRow(); //insere nova linha rs.updateInt(2, 3535); //atualiza coluna 2
Segue exemplos dos principais comandos que sero utilizando em uma aplicao que realizar operaes em um Banco de Dados:
Este exemplo realiza uma consulta na tabela denominada Relacao, com os campos Nome e Id. Vamos partir do princpio de que a ponte JDBC-OBDC j foi criada com o nome BDAccess.
import java.sql.*;
Usurio
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//seleciona Driver
// obtm o valor armazenado no campo Nome da tabela Relacao String nome=rs.getString("nome"); // obtm o valor arqmazenado no campo da Id int id=rs.getInt("id"); // imprime o contedo da varivel System.out.println("Nome:"+nome+ " Ident:"+id); } rs.close(); //fecha "ponte" con.close(); //fecha conexo com BD
} catch(SQLException e){ //trata os erros System.out.println( erro de conexo + e.getMessage()); // mensagem de erro
O NetBeans no 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 programao. Para trabalhar com Banco de Dados preciso faz-lo via cdigo, que dever ser inserido dentro do mtodo actionPerformed de um JButton. Cria-se o Formulrio contendo os componentes visuais para
mostrar, e manipular, os dados da tabela do Banco de Dados. Dentre estes componentes esto os botes ou menus, os quais sero os responsveis por executar os cdigos para realizar uma determinada operao, consulta, insero, alterao ou excluso em um BD. Depois de criada a parte visual , devem ser implementados os cdigos nos botes/menus:
OBS: - Os exemplos que se seguem utilizam uma Fonte de Dados ODBC com o Nome: PBD_Nomes que representa uma conexo com um Banco de Dados Access, contendo uma Tabela com o nome: TabFicha , contendo os campos (Matricula Tipo Nmero/Chave Primria; Nome Tipo Texto)
try{ //tratamento de erros Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver //conecta no BD Connection Nomes","",""); Statement stmt = con.createStatement(); //objeto comdo sql con = DriverManager.getConnection("jdbc:odbc:PBD-
String CadNome = jTextField1.getText(); //obtm nome digitado int CadMat=Integer.parseInt( jTextField2.getText() ); stmt.executeUpdate( insert into TabFicha (Matricula, Nome) values (' " + CadMat + " ',' " + CadNome + " ' ) " ); JOptionPane.showMessageDialog( this, " Dados Salvos! "); con.close(); // fecha conexo com BD } catch( SQLException e){ //trata os erros JOptionPane.showMessageDialog(this, e.getMessage() ); "Erro Cmdo SQL " +
boolean consulta=true; //varivel auxiliar utilizada para informar se houve sucesso na consulta try{ //tratamento de erros Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver //conecta no BD Connection con=DriverManager.getConnection("jdbc:odbc:PBDNomes","",""); Statement stmt= con.createStatement();//objeto comdo sql String ConsNome= jTextField1.getText(); ResultSet RS= stmt.executeQuery( "Select * from TabFicha where nome=' " + ConsNome + " ' "); while (RS.next()){ int Mat= RS.getInt("Matricula"); jTextField2.setText(String.valueOf( Matricula )); jTextField3.setText(RS.getString("Nome")); consulta=false; JOptionPane.showMessageDialog(this,"Dados Encontrados!"); } if (consulta) JOptionPane.showMessageDialog(this,"Dados No Encontrados!"); RS.close (); stmt.close(); con.close(); //fecha conexo com BD } catch(SQLException e){ //trata os erros
try{ //tratamento de erros Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver //conecta no BD Connection con=DriverManager.getConnection("jdbc:odbc:PBDNomes","",""); Statement stmt= con.createStatement();//objeto comdo sql String ConsNome= jTextField1.getText(); int CadMat=Integer.parseInt(jTextField2.getText()); String CadNome=jTextField3.getText(); int registro = stmt.executeUpdate(" update TabFicha set Nome=' " +CadNome+ " ', Matricula=' "+CadMat+ " 'where Nome=' " + ConsNome + " ' "); if (registro!=0) JOptionPane.showMessageDialog(this,"Dados Alterados!"); else JOptionPane.showMessageDialog(this,"Dados No Alterados!"); stmt.close(); con.close(); //fecha conexo com BD } catch(SQLException e){ //trata os erros JOptionPane.showMessageDialog(this,"Erro Cmdo SQL "+e.getMessage()); } catch(ClassNotFoundException e){ JOptionPane.showMessageDialog(this,"Driver no encontrado"); }
d) Cdigos para Excluir: try{ //tratamento de erros Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver //conecta no BD Connection Nomes","",""); Statement stmt= con.createStatement();//objeto comdo sql String ExcNome= jTextField1.getText(); con=DriverManager.getConnection("jdbc:odbc:PBD-
int registro=stmt.executeUpdate("delete from TabFicha where Nome=' " + ExcNome + " ' "); if (registro!=0) JOptionPane.showMessageDialog(this,"Dados Excluidos!"); else Excluidos!"); stmt.close(); con.close(); //fecha conexo com BD JOptionPane.showMessageDialog(this,"Dados no
} catch(SQLException e){ //trata os erros JOptionPane.showMessageDialog(this,"Erro "+e.getMessage()); } catch(ClassNotFoundException e){ JOptionPane.showMessageDialog(this,"Driver no encontrado"); } Cmdo SQL
NOTA:*****Antes de inserir os cdigos preciso importar os pacotes para trabalhar com Banco de Dados e exibir caixa de mensagens: Localize o cdigo de criao da classe. Ex: Public Class ... Antes deste comando insira os seguintes cdigos: import java.sql.*; import javax.swing.*; Exemplo Completo Crie uma aplicao para cadastrar a Matricula e os Nomes dos Funcionrios de uma Empresa.
New
JFrame
2. Modifique o Layout do JFrame para AbsoluteLayout e insira os seguintes componentes: dois JLabel (Nome e Matricula), dois JTextField e um JButton (Salvar)
JTextFiled1 JTextField2
4. Abra o Access e crie um BD (BDCadastro) com uma Tabela (TabFicha) com os campos: Matricula (Tipo Numrico/Chave Primria) e Nome Texto. Tipo
5. Devemos criar a Ponte JDBC/ODBC: abra o Painel de Controle Ferramentas Administrativas Add Fontes de Dados ODBC clique no Boto no
clique no boto
6. Criado o BD e a Ponte ODBC, volte para a sua aplicao no NetBeans e d um duplo clique no JButton (Salvar) para codificar a conexo: Depois de private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { , digite:
try{ //tratamento de erros Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver //conecta no BD Connection Nomes","",""); Statement stmt = con.createStatement(); //objeto comdo sql Aspas Simples e Aspas Duplas con = DriverManager.getConnection("jdbc:odbc:PBD-
stmt.executeUpdate("insert into TabFicha (Matricula,Nome) values ('" + CadMat + "','" + CadNome + "')" ); JOptionPane.showMessageDialog( this, " Dados Salvos! "); con.close(); // fecha conexo com BD } catch( SQLException e){ //trata os erros JOptionPane.showMessageDialog(this, e.getMessage() ); } catch( ClassNotFoundException e){ JOptionPane.showMessageDialog( this, " Driver no encontrado " ); } 7. Compile Execute. "Erro Cmdo SQL " + Aspas Duplas e Aspas Simples
8. Realizando operaes de Consulta, Alterao e Excluso em BD: Insira trs Botes para executar as operaes restantes no Banco de Dados (Consulta, Alterao e Excluso), um JLabel, para exibir o Texto Nome para Consulta/Excluso , supondo que estas operaes sero feitas atravs do campo Nome , e insira tabm um JTextField para p usurio poder digitar o Nome , ou crie um novo Form contendo os JLabel, JTextField , e JButton, sendo que o mesmo dever ser chamado por outro Form atravs de um JMenurBar. Supondo que foram inseridos os novos componentes da seguinte forma:
Basta dar um duplo clique no boto desejado e inserir o respectivo cdigo para a respectiva operao:
Consultar
boolean consulta=true; try{ //tratamento de erros Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver //conecta no BD Connection con=DriverManager.getConnection("jdbc:odbc:PBDNomes","",""); Statement stmt= con.createStatement();//objeto comdo sql String ConsNome= jTextField1.getText(); ResultSet RS= stmt.executeQuery("Select * from TabFicha where nome='" + ConsNome + "' "); while (RS.next()){ int Mat= RS.getInt("Matricula"); jTextField2.setText(String.valueOf(Mat)); jTextField3.setText(RS.getString("Nome"));
Aspas Duplas e Aspas Simples Aspas Simples e Aspas Duplas
consulta=false; JOptionPane.showMessageDialog(this,"Dados Encontrados!"); } if (consulta) JOptionPane.showMessageDialog(this,"Dados No Encontrados!"); RS.close (); stmt.close(); con.close(); //fecha conexo com BD } catch(SQLException e){ //trata os erros JOptionPane.showMessageDialog(this,"Erro Cmdo SQL "+e.getMessage()); } catch(ClassNotFoundException e){ JOptionPane.showMessageDialog(this,"Driver no encontrado"); }
Alterar:
try{ //tratamento de erros Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver //conecta no BD Connection con=DriverManager.getConnection("jdbc:odbc:PBDNomes","",""); Statement stmt= con.createStatement();//objeto comdo sql String ConsNome= jTextField1.getText(); int CadMat=Integer.parseInt(jTextField2.getText()); String CadNome=jTextField3.getText(); int registro = stmt.executeUpdate("update TabFicha set Nome='" +CadNome+ "', Matricula='"+CadMat+ "'where Nome='" + ConsNome + "' "); if (registro!=0) JOptionPane.showMessageDialog(this,"Dados Alterados!"); else JOptionPane.showMessageDialog(this,"Dados No Alterados!"); stmt.close();
con.close(); //fecha conexo com BD } catch(SQLException e){ //trata os erros JOptionPane.showMessageDialog(this,"Erro Cmdo SQL "+e.getMessage()); } catch(ClassNotFoundException e){ JOptionPane.showMessageDialog(this,"Driver no encontrado"); }
Excluir:
try{ //tratamento de erros Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//busca Driver //conecta no BD Connection con=DriverManager.getConnection("jdbc:odbc:PBDNomes","",""); Statement stmt= con.createStatement();//objeto comdo sql String ExcNome= jTextField1.getText(); int registro=stmt.executeUpdate("delete from TabFicha where Nome='" + ExcNome + "'"); if (registro!=0) JOptionPane.showMessageDialog(this,"Dados Excluidos!"); else JOptionPane.showMessageDialog(this,"Dados no Excluidos!"); stmt.close(); con.close(); //fecha conexo com BD } catch(SQLException e){ //trata os erros JOptionPane.showMessageDialog(this,"Erro Cmdo SQL "+e.getMessage()); } catch(ClassNotFoundException e){ JOptionPane.showMessageDialog(this,"Driver no encontrado"); }
9. Compile Execute. OBS: Como os comando de conexo com o Banco de Dados esto se repetido, os mesmos poderiam ser implementados dentro de uma funo e serem executados atravs de uma chamada desta funo quando se desejar estabelecer uma conexo com o banco de dados para realizar uma determinada operao em suas tabelas, diminuindo a quantidade de cdigo a ser digitado.
2004, Jos Valney Melo Barbalho - MBA em GSI, [email protected], todos os direitos reservados. O texto e cdigo-fonte apresentados podem ser referenciados e utilizados, desde que expressamente citada esta fonte e o crdito do autor. A informao aqui apresentada, apesar de todo o esforo para garantir sua preciso e correo, oferecida "como est", sem quaisquer garantias explcitas ou implcitas decorrentes de sua utilizao ou suas conseqncias diretas e indiretas.
This document was created with Win2PDF available at http://www.daneprairie.com. The unregistered version of Win2PDF is for evaluation or non-commercial use only.