Documente Academic
Documente Profesional
Documente Cultură
Índice
1 - Programação Visual – Swing.........................................................................................................................2
1.1) Introdução.................................................................................................................................................2
1.2) Componentes do Swing............................................................................................................................3
1.3) Execute 1: Documentação do Swing.........................................................................................................5
1.4) Criando uma interface...............................................................................................................................5
1.5) Desenvolvendo uma estrutura ..................................................................................................................6
1.6) Execute 2 Desenvolvendo uma estrutura..................................................................................................6
1.7) Criando Botões..........................................................................................................................................7
1.8) Execute 3: Criando botões.........................................................................................................................7
1.9) Criando Rótulos.........................................................................................................................................8
1.10) Execute 4: Criando Rótulos.....................................................................................................................8
1.11) Criando Campos de Texto.......................................................................................................................9
1.12) Execute 5: Criando campos de texto.....................................................................................................10
1.13) Criando Áreas de texto..........................................................................................................................11
1.14) Execute 6: Criando Áreas de Texto.......................................................................................................11
1.15) Criando Painéis deslizantes...................................................................................................................13
1.16) Execute 7: Criando painéis deslizantes................................................................................................14
1.17) Criando Barras de rolagem....................................................................................................................15
1.18) Execute 8: Criando Barras de Rolagem................................................................................................15
1.19) Criando Caixas de verificação...............................................................................................................16
1.20) Execute 9: Criando caixa de verificação...............................................................................................17
1.21) Criando botões de rádio.........................................................................................................................18
1.22) Execute 10: Criando botões de escolha.................................................................................................18
1.23) Listas suspensas e caixas de combinação..............................................................................................19
1.24) Execute 11: Criando listas suspensas....................................................................................................20
1.25) Caixas de Diálogo de confirmação........................................................................................................21
1.26) Execute 12: Caixa de diálogo de confirmação......................................................................................21
1.27) Caixas de diálogo de entrada.................................................................................................................22
1.28) Execute 13: Caixa de diálogo de entrada..............................................................................................22
1.29) Caixas de diálogo de mensagem...........................................................................................................22
1.30) Execute 14: Caixa de diálogo de mensagem.........................................................................................23
1.31) Caixas de diálogo de opção...................................................................................................................23
1.32) Execute 15: Caixa de diálogo de opção.................................................................................................24
1.33) Controles deslizantes.............................................................................................................................25
1.34) Execute 16: Controles deslizantes.........................................................................................................25
2 - Organizando componentes em uma interface com o usuário.......................................................................27
2.1) Layout de Fluxo......................................................................................................................................27
2.2) Execute 17: Gerenciador FlowLayout.....................................................................................................27
2.3) Layout de grade.......................................................................................................................................28
2.4) Execute 18: Gerenciador GridLayout.....................................................................................................28
2.5) Layout de Borda......................................................................................................................................29
2.6) Execute 19: Gerenciador BorderLayout..................................................................................................30
3 - Respondendo à entrada do usuário...............................................................................................................31
3.1) Receptores de evento..............................................................................................................................31
3.2) Configurando componentes.....................................................................................................................32
3.3) Evento de Ação........................................................................................................................................33
3.4) Execute 20: Evento de Ação....................................................................................................................33
3.5) Eventos de foco.......................................................................................................................................35
3.6) Execute 21: Evento de foco.....................................................................................................................35
3.7) Eventos de tecla.......................................................................................................................................36
1.1) Introdução
O Swing é um biblioteca de classes para a construção de interface gráfica baseada em
componentes leves.
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
3
O Swing, que faz parte da biblioteca Java Foundation Classes, oferece uma maneira de
fornecer uma interface gráfica com o usuário em seus programas Java e de receber
entradas do usuário com o teclado, o mouse ou outros dispositivos de entrada.
De acordo com a Sun o nome correto é “JFC Project Swing” padrão na plataforma Java 2
(1.2).
A biblioteca Swing é uma extensão do Abstract Windowing Toolkit (awt), o pacote que
oferecia suporte limitado para programação gráfica na linguagem Java 1.0.
O Swing oferece uma funcionalidade bastante aprimorada em relação ao seu antecessor:
novos componentes, recursos de componente expandidos, melhor tratamento de eventos,
aparência e comportamento selecionáveis.
Vantagens do Swing:
Swing tem um rico conjunto de componentes (muito mais que a AWT);
Swing depende muito menos da plataforma nativa;
Swing mantém o mesmo padrão entre várias plataformas.
Desvantagem do Swing:
Compatibilidade: requer Java 1.2 ou superior;
Desempenho: componentes são desenhados em Java.
Componentes Superiores:
JFrame: janelas que possuem uma barra de título, botões de maximização e fechamento.
JDialog: janelas usadas para fornecer diálogos com os usuários;
JApplet: aplicações que serão mostradas em um browser;
Componentes Intermediários:
JPanel: painéis que podem ser adicionados em janelas para facilitar a disposição dos
componentes de uma interface.
JScrollPane: painéis que podem ser adicionados em janelas e que possuem barras de
rolagens.
JToolBar: barras de ferramentas que podem ser adicionadas em janelas.
JInternalFrame: frames que podem ser adicionados internamentes a outros frames.
Componentes Internos:
JLabel: componente usado para mostrar rótulos (textos) ou elementos gráficos que
fornecem informações;
JButton: regiões clicáveis com texto ou elementos gráficos que indicam seu objetivo;
JTextField: campo de textos que recebem entradas do teclado e permitem que o texto
seja editado;
JComboBox: grupos de itens relacionados que podem ser selecionados a partir de menus
suspensos;
JRadioButton: botões de escolha em círculos que podem ser marcados ou desmarcados.
JCheckBox: caixas de verificação que podem ser marcadas ou desmarcadas.
JButtonGroup: agrupar componentes de caixa de verificação e botões de escolha;
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
4
JList: grupos de itens relacionados que podem ser selecionados a partir de janelas
rolantes;
JTextArea: áreas de texto que recebem entradas do teclado e permitem que o texto seja
editado;
JSlider: controles deslizantes horizontais;
JProgressBar: barras de progresso;
JMenuBar: barras de menus;
JMenu; componentes para inserir menus em um barra de menu;
JMenuITem: componentes para inserir itens de menus em um menu.
Uma janela é um contêiner que pode ser apresentado na área de trabalho do usuário.
1.5) Desenvolvendo uma estrutura
Uma maneira de criar um aplicativo gráfico Swing é tornar a interface uma sub-classe de
JFrame.
// ExemploFrame.java
import javax.swing.*;
// construtor
public ExemploFrame(){
super("Exemplo de Frame"); // construir uma janela com o título
setSize(300,100); // uma janela com 300 x 100
setDefaultCloseOperation(EXIT_ON_CLOSE); // método para fechar janela
setVisible(true); // método para tornar a janela visível
}
3) Quando você compilar e executar o aplicativo, deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
// ExemploBotao.java
import javax.swing.*;
// construtor
public ExemploBotao(){
super("Exemplo Botão");
setSize(200,130);
setDefaultCloseOperation(EXIT_ON_CLOSE);
// adicionar os botões no painel
painel.add(rotulo);
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
8
painel.add(rotuloicone);
painel.add(icone);
setContentPane(painel);
show();
}
O alinhamento de um rótulo determina como seu texto ou ícone esta alinhado em relação
área ocupada na janela. Três alinhamentos podem ser usados: LEFT, CENTER ou
RIGHT. Caso não seja especificado o alinhamento o padrão é CENTER.
1) Abra o Jcreator
2) Digite o código abaixo:
// ExemploRotulo.java
import javax.swing.*;
// atributos
private JLabel texto = new JLabel("Rótulo com texto alinhamento centralizado
");
private JLabel textoalinhar = new JLabel("Rótulo com texto alinhado a
esquerda",JLabel.LEFT);
private JLabel textoicone = new JLabel("Rótulo com texto, Ícone alinhado a
direita",new ImageIcon("logo.gif"),JLabel.RIGHT);
private JPanel painel = new JPanel();
// construtor
public ExemploRotulo(){
super("Exemplo Rótulos");
setSize(350,150);
setDefaultCloseOperation(EXIT_ON_CLOSE);
// adicionando os rótulos no painel
painel.add(texto);
painel.add(textoalinhar);
painel.add(textoicone);
setContentPane(painel);
show();
}
3) Quando você compilar e executar o aplicativo, deverá ver a janela ilustrada a seguir:
// ExemploCampoTexto.java
import javax.swing.*;
// construtor
public ExemploCampoTexto(){
super("Exemplo Campo Texto");
setSize(350,150);
setDefaultCloseOperation(EXIT_ON_CLOSE);
// adicionando os campos de texto no painel
painel.add(vazio);
painel.add(largura);
painel.add(textolargura);
setContentPane(painel);
show();
}
3) Quando você compilar e executar o aplicativo, deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código:
// ExemploAreaTexto.java
import javax.swing.*;
// construtor
public ExemploAreaTexto(){
super("Exemplo Area de Texto");
setSize(450,350);
setDefaultCloseOperation(EXIT_ON_CLOSE);
// adicionando area de texto no painel
painel.add(lincol);
painel.add(textolincol);
setContentPane(painel);
show();
}
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
12
3) Quando você compilar e executar o aplicativo, deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
//ExemploPaineisdes.java
import javax.swing.*;
3) Quando você compilar e executar o aplicativo, deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código:
//ExemploBarraRola.java
import javax.swing.*;
show();
}
3) Quando você compilar e executar o aplicativo, deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código:
// ExemploCheckBox.java
import javax.swing.*;
public ExemploCheckBox(){
setContentPane(painel);
show();
}
3) Quando você compilar e executar o aplicativo, deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código:
//ExemploRadioButton.java
import javax.swing.*;
public ExemploRadioButton(){
super("Exemplos de Botões de Escolha");
setSize(300,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setContentPane(painel);
grupo.add(feminino);
grupo.add(masculino);
painel.add(lsexo);
painel.add(feminino);
painel.add(masculino);
show();
3) Quando você compilar e executar o aplicativo, deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
//ExemploLista.java
import javax.swing.*
public class ExemploLista extends JFrame {
JComboBox mes = new JComboBox();
JComboBox ano = new JComboBox();
public ExemploLista(){
super(“Exemplo de Listas suspensas”);
setSize(220,90);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel painel = new JPanel();
JLabel niver = new JLabel(“Aniversário: ”);
painel.add(niver);
for (int i=1; i<13;i++){
mes.addItem(“”+i);
}
for (int i=1900;i < 2100;i++){
ano.addItem(“”+i);
}
painel.add(mes);
painel.add(ano);
setContentPane(painel);
show();
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
// ExemploConfirma.java
import javax.swing.*;
public class ExemploConfirma extends JFrame {
public ExemploConfirma(){
int resposta;
resposta = JOptionPane.showConfirmDialog(null,"Tem Certeza que desja sair?");
if (resposta == 0)
System.exit(0);
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
//ExemploEntrada.java
import javax.swing.*;
public class ExemploEntrada extends JFrame {
public ExemploEntrada(){
String resposta = JOptionPane.showInputDialog(null, "Entre seu nome:");
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
//ExemploMens.java
import javax.swing.*;
public class ExemploMens extends JFrame {
public ExemploMens(){
JOptionPane.showMessageDialog(null, "Instalação Concluída");
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
Um objeto Icon que será apresentado no lugar de um dos ícones do argumento anterior.
Um array de objetos contendo os componentes ou outros objetos que representem as
opções da caixa de diálogo, caso YES_NO_OPTION e YES_NO_CANCEL_OPTION não
estejam sendo usadas.
Objeto representando a seleção padrão se as opções YES_NO_OPTION e
YES_NO_CANCEL não estiverem sendo usadas.
Os dois último argumentos permitem que você crie uma ampla gama de opções para a
caixa de diálogo. É possível criar um array de botões, rótulos, campos de texto ou mesmo
uma mistura de diferentes componentes como um array de objetos. Esses componentes
são apresentados usando o gerenciador de layout de fluxo – não existe um modo de
especificar um gerenciador diferente dentro da caixa de diálogo.
1) Abra o Jcreator
2) Digite o código abaixo:
//ExemploOpcao.java
import javax.swing.*;
public class ExemploOpcao extends JFrame {
public ExemploOpcao(){
JButton[] sexo = new JButton[3];
sexo[0] = new JButton("Feminino");
sexo[1] = new JButton("MAsculino");
sexo[2] = new JButton("Não Responder");
int reposta = JOptionPane.showOptionDialog(null, "Qual o sexo?","Sexo",
0,JOptionPane.INFORMATION_MESSAGE, null,sexo,sexo[2]);
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
Esses métodos devem ser chamados no controle deslizante antes que ele seja inserido
em um contêiner.
1) Abra o Jcreator
2) Digite o código abaixo:
//ExemploSlider.java
import javax.swing.*;
public ExemploSlider(){
super("Exemplo de Slider");
setSize(400,100 );
setDefaultCloseOperation(EXIT_ON_CLOSE);
num.setMajorTickSpacing(10);
num.setMinorTickSpacing(1);
num.setPaintTicks(true);
num.setPaintLabels(true);
painel.add(num);
setContentPane(painel);
show();
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
//ExemploFlowLayout.java
import javax.swing.*;
import java.awt.*;
public ExemploFlowLayout(){
super("Exemplo FlowLayout");
setSize(360,120);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel painel = new JPanel();
FlowLayout l = new FlowLayout(FlowLayout.LEFT);
painel.setLayout(l);
painel.add(b1);
painel.add(b2);
painel.add(b3);
painel.add(b4);
painel.add(b5);
painel.add(b6);
painel.add(b7);
painel.add(b8);
painel.add(b9);
setContentPane(painel);
show();
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
//ExemploGridLayout.java
import javax.swing.*;
import java.awt.*;
public ExemploGridLayout(){
super("Exemplo GridLayout");
setSize(360,120);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel painel = new JPanel();
GridLayout g = new GridLayout(3,3);
painel.setLayout(g);
painel.add(b1);
painel.add(b2);
painel.add(b3);
painel.add(b4);
painel.add(b5);
painel.add(b6);
painel.add(b7);
painel.add(b8);
painel.add(b9);
setContentPane(painel);
show();
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
//ExemploBorder.java
import javax.swing.*;
import java.awt.*;
public ExemploBorderLayout(){
super("Exemplo BorderLayout");
setSize(360,360);
setDefaultCloseOperation(EXIT_ON_CLOSE);
JPanel painel = new JPanel();
BorderLayout b = new BorderLayout();
painel.setLayout(b);
painel.add(btnorte,BorderLayout.NORTH); // botão norte
painel.add(btsul,BorderLayout.SOUTH); // botão sul
painel.add(btleste,BorderLayout.EAST); // botão leste
painel.add(btoeste,BorderLayout.WEST); // botão oeste
painel.add(btcentro,BorderLayout.CENTER); // botão centro
setContentPane(painel);
show();
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
ItemListener: Eventos de item, que são gerados quando um item, como uma caixa de
verificação, é alterado
KeyListener: Eventos de teclado, que ocorrem quando um usuário digita texto no teclado
MouseListener: Eventos de mouse, que são gerados por cliques de mouse, por um mouse
entrando na área de um componente e por um mouse deixando a área de um
componente
WindowListener: Eventos de janela, que são gerados por uma janela (como a janela
principal do aplicativo) ao ser minimizada, maximizada, movida ou fechada
//....
O exemplo a seguir cria um objeto Jbutton e associa um receptor de evento de ação a ele:
JButton excluir = new JButton(“Excluir”);
excluir.addActionListener(this).
1) Abra o Jcreator
2) Digite o código abaixo:
//EventoAcao
import javax.swing.*;
import java.awt.*;
import java.awt.event.*; // pacote para tratamento de eventos
// construtor da classe
public EventoAcao(){
super("Tratamento de Eventos de Ação");
setSize(500,100);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
btfechar.addActionListener(this);
getContentPane().add(pncentro, BorderLayout.CENTER);
getContentPane().add(pndireita,BorderLayout.EAST);
getContentPane().add(pnsul,BorderLayout.SOUTH);
pncentro.add(lbentrada);
pncentro.add(tfentrada);
pndireita.add(lbsaida);
pndireita.add(tfsaida);
pnsul.add(btlimpar);
pnsul.add(btinserir);
pnsul.add(btfechar);
show();
}
else if (evento.getSource()==btlimpar){
tfsaida.setText("");
tfentrada.setText("");
}
else if (evento.getSource()==btfechar){
System.exit(0);
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public SelecionaItem(){
super("Seleciona Item");
setDefaultCloseOperation(EXIT_ON_CLOSE);
escolha.addItemListener(this);
escolha.addItem("Navigator");
escolha.addItem("Internet Explorer");
escolha.addItem("Opera");
escolha.setEditable(false);
resultado.setHorizontalAlignment(SwingConstants.CENTER);
resultado.setEditable(false);
JPanel painel = new JPanel();
painel.setLayout(borda);
painel.add(resultado, "South");
painel.add(escolha,"Center");
setContentPane(painel);
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
37
public EventoTecla(){
super("Exemplo de Evento de tecla");
setLocation(100,100);
setSize(300,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
painel.add(digite,"Center");
digite.addKeyListener(this);
setContentPane(painel);
show();
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o Jcreator
2) Digite o código abaixo:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public EventoMouse(){
super("Exemplo de Evento de Mouse");
setLocation(100,100);
setSize(300,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
painel.add(btclicar,"Center");
btclicar.addMouseListener(this);
painel.add(btapontar,"Center");
btapontar.addMouseListener(this);
setContentPane(painel);
show();
if (evento.getSource()== btclicar){
JOptionPane.showMessageDialog(null,"Voce pressionou o botão do mouse");
}
if (evento.getSource()== btclicar){
JOptionPane.showMessageDialog(null,"Voce clicou em mim");
}
}
public static void main(String a []){
EventoMouse mouse = new EventoMouse();
}
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o JCreator
2) Digite o código abaixo:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public EventoMovMouse(){
super("Exemplo de Evento de Movimento do Mouse");
setLocation(100,100);
setSize(300,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
painel.add(btapontar,"Center");
btapontar.addMouseMotionListener(this);
painel.add(btarrastar,"Center");
btarrastar.addMouseMotionListener(this);
setContentPane(painel);
show();
}
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
41
if (evento.getSource()== btarrastar){
JOptionPane.showMessageDialog(null,"Voce tentou arrastar");
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o JCreator
2) Digite o código abaixo:
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
public EventoJanela(){
super("Exemplo de Evento de Janela");
setLocation(100,100);
setSize(300,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
addWindowListener(this);
show();
}
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
Adicionar uma barra de menus contendo menus e itens de menus são bastante simples
no Java. Basta seguir intuitivamente a estrutura visual apresentada:
• Adicionar uma barra de menu a janela;
• Adicionar os menus suspensos a barra de menu;
• Adicionar os itens de menus desejados ou a cada um dos menus suspensos e
• Adicionar os listener necessários para ser possível que os menus e itens de menus
exibam funcionalidades.
1) Abra o JCreator
2) Digite o código abaixo:
import javax.swing.*;
import java.awt.event.*;
public class CriarMenu extends JFrame implements ActionListener{
public CriarMenu(){
super("Criando Menus");
setSize(500,500);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add(barramenu);
barramenu.add(marquivo);
barramenu.add(meditar);
barramenu.add(mformatar);
marquivo.add(misalvar);
misalvar.addActionListener(this);
marquivo.add(mifechar);
mifechar.addActionListener(this);
meditar.add(micopiar);
micopiar.addActionListener(this);
meditar.add(micolar);
micolar.addActionListener(this);
mformatar.add(mifonte);
mifonte.add(micor);
micor.addActionListener(this);
mifonte.add(mitamanho);
mitamanho.addActionListener(this);
setJMenuBar(barramenu);
show();
if (evento.getSource()==misalvar){
JOptionPane.showMessageDialog(null,"Você clicou na opção salvar do
menu arquivo");
} else if (evento.getSource()==mifechar){
System.exit(0);
} else if (evento.getSource()==micopiar){
JOptionPane.showMessageDialog(null,"Você clicou na opção copiar do
menu editar");
} else if (evento.getSource()==micolar){
JOptionPane.showMessageDialog(null,"Você clicou na opção colar do
menu editar");
} else if (evento.getSource()==micor){
JOptionPane.showMessageDialog(null,"Você clicou na opção cor do menu
formatar, fonte");
} else if (evento.getSource()==mitamanho){
JOptionPane.showMessageDialog(null,"Você clicou na opção tamanho do
menu formata, fonte");
}
}
public static void main(String a[]){
3) Quando você compilar e executar o aplicativo deverá ver a janela ilustrada a seguir:
1) Abra o JCreator
2) Digite o código abaixo:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public CriarFerramentas(){
super();
setSize(500,500);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add(barraferra,BorderLayout.NORTH);
barraferra.add(b1);
b1.addActionListener(this);
barraferra.add(b2);
b2.addActionListener(this);
barraferra.add(b3);
b3.addActionListener(this);
show();
}
if (evento.getSource()==b1){
JOptionPane.showMessageDialog(null,"Você clicou no primeiro botão");
} else if (evento.getSource()==b2){
JOptionPane.showMessageDialog(null,"Você clicou no segundo botão");
} else if (evento.getSource()==b3){
JOptionPane.showMessageDialog(null,"Você clicou no terceito botão");
}
}
public static void main(String a[]){
CriarFerramentas cr = new CriarFerramentas();
}
}
Funcionalidades:
• botão Limpar: quando clicar neste botão todas as caixas de textos e label imc serão
limpos.
• botão Calcular IMC: quando clicar neste botão deverá ser mostrado no label imc o
cálculo do imc (índice de massa corpórea ). O imc é calculado da seguinte forma:
peso dividido pela altura (metros) ao quadrado. A tabela abaixo define a situação do
IMC:
IMC Situação
abaixo de 20 abaixo do peso normal
20 até 25 peso normal
acima de 25 até 30 sobrepeso
acima de 30 até 35 obesidade
acima de 35 obesidade mórbida
• No label imc deverá ser apresentado o valor do imc e a situação. Veja o exemplo:
Funcionalidades:
• Botão +: quando clicar nesse botão será efetuado a soma entre os dois números e
mostrar o resultado no label resultado.
• Botão /: quando clicar nesse botão será efetuado a divisão entre os dois números e
mostrar o resultado no label resultado.
• Botão *: quando clicar nesse botão será efetuado a multiplicação entre os dois
números e mostrar o resultado no label resultado.
• Botão -: quando clicar nesse botão será efetuado a subtração entre os dois números.
• Botão Limpar: quando clicar nesse botão limpar os TextFields e o label resultado.
Funcionalidades:
• Quando clicar no item de menu Calculo IMC será executado a aplicação do
exercício 1 (Calculo IMC).
4.1) Linhas
O método drawLine pode ser usado para desenhar linhas retas entre dois pontos (x1,y1) e
(x2,y2) dados.
drawLine(int x1, int y1, int x2, int y2)
int x1 ⇒ coordenada x inicial
int y1 ⇒ coordenada y inicial
int x2 ⇒ coordenada x final
int y2 ⇒ coordenada y final
1) Abra o JCreator
2) Digite o código abaixo:
//Linhas.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
g.drawLine(x1,y1,x2,y2);
3) Compilar e executar.
1) Abra o JCreator
2) Digite o código abaixo:
//Retangulos.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public Retangulos(){
super("Criando Retângulos");
setSize(300,300);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
show();
}
g.drawRect(x1,y1,x2,y2);
3) Compilar e executar.
1) Abra o JCreator
2) Digite o código abaixo:
//Elipse.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public Elipse(){
super("Criando Elipse");
setSize(300,300);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
show();
}
g.drawOval(x1,y1,x2,y2);
3) Compilar e executar.
4.7) Polígonos
Para desenhar polígonos regulares ou irregulares utilizamos os métodos drawPolygon ou
fillPolygon que permite a obtenção de figuras vazadas ou sólidas respectivamente. Estes
métodos podem receber dois vetores comuns que contem as coordenadas x e y de cada
ponto do polígono e um valor inteiro que define a quantidade de pontos. Com essas
informações os métodos desenham um polígono fechado.
1) Abra o JCreator
2) Digite o código abaixo:
//Poligono.java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public Poligono(){
super("Criando Poligonos");
setSize(300,300);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
show();
}
g.drawPolygon(x,y,4);
3) Compilar e executar.
//Grafica1.java
import java.awt.*;
import javax.swing.*;
public Grafica1(){
super();
setSize(205,205);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
show();
}
public void paint(Graphics tela) {
setBackground(Color.white);
tela.setColor(Color.black);
for (int i = 0; i <= 200; i += 20) {
tela.drawLine(0, i, 200, i);
tela.drawLine(i, 0, i, 200);
}
tela.setColor(Color.red);
tela.fillOval(30, 30, 160, 160);
}
3) Compilar e executar.
4) A janela será exibida:
//Grafica2.java
import java.awt.*;
import javax.swing.*;
public Grafica2() {
super();
setSize(260,240);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().add("North", lbestat);
getContentPane().add("Center", gstat);
show();
}
3) Compilar e executar.
4) A tela será mostrada:
//Grafica3.java
import java.awt.*;
import javax.swing.*;
public Grafica3(){
super();
setSize(350,370);
setLocation(100,100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
show();
}
tela.setColor(Color.white);
for (int ax = 10; ax < 340; ax += 10)
for (int ay = 30; ay < 340 ; ay += 10) {
tela.drawArc(ax, ay, 10, 10, 0, -180);
}
tela.setColor(Color.green);
Polygon fl = new Polygon();
fl.addPoint(10, 12);
fl.addPoint(234, 15);
fl.addPoint(253, 25);
fl.addPoint(261, 71);
fl.addPoint(344, 209);
fl.addPoint(336, 278);
fl.addPoint(295, 310);
fl.addPoint(259, 274);
fl.addPoint(205, 188);
fl.addPoint(211, 171);
fl.addPoint(195, 174);
fl.addPoint(191, 118);
fl.addPoint(120, 56);
fl.addPoint(94, 68);
fl.addPoint(81, 49);
fl.addPoint(12, 37);
tela.fillPolygon(fl);
tela.setColor(Color.black);
tela.fillOval(235, 140, 15, 15);
tela.fillOval(225, 130, 15, 15);
tela.fillOval(245, 130, 15, 15);
}
3) Compilar e executar.
4) A tela será mostrada:
5 - Threads
Threads constituem uma característica bastante relevante da linguagem Java. A
incorporação dos conceitos de sincronização e variáveis de condição dentro da própria
linguagem permite que programadores médios consigam utilizar conceitos de computação
concorrente de forma bem facilitada, o que possibilita uma melhoria de performance dos
programas. Neste capítulo veremos o que são threads, analisaremos seus estados e
métodos básicos e aprenderemos a inserir threads em applets.
Threads permitem que um programa simples possa executar várias tarefas diferentes ao
mesmo tempo, independentemente umas das outras.
Programas multithreaded são programas que contém várias threads, executando tarefas
distintas, simultaneamente.
O corpo de uma thread é o seu método run(), e é nele que são executadas as tarefas às
quais thread se destina. Podemos implementar threads de duas maneiras (ambas
suportadas pelos construtores da classe Thread):
A linguagem Java fornece meios para criarmos threads como daemons, agruparmos
threads, sincronizá-los e controlar suas prioridades.
• New Thread
Inicialização da thread - feita através do construtor Thread().
Neste estado, nenhum recurso do sistema foi alocado para o thread ainda, assim, a partir
daqui, tudo que você pode fazer é um start(), para ativar a thread, ou um stop(), para
“matá-lo”. A chamada de qualquer outro método não faz sentido e levantará a exceção
IllegalThreadStateException.
• Runnable
Este é o estado em que o thread está pronto para rodar. O método start() requisita os
recursos do sistema necessários para rodar a thread e chama o seu método run(). O
método run() é a “alma” de um thread; é neste método que definimos o que a thread vai
executar.
Falamos em Runnable, ao invés de Running, porque a thread pode não estar realmente
sendo executada. Imagine um computador com um único processador - seria impossível
executar todas as threads ao mesmo tempo. O que ocorre é que a CPU deve ser
escalonada entre as várias threads. Quando uma thread está Running, ela está também
Runnable, as instruções do seu método run() é que estão sendo executadas pela CPU.
• Not Runnable
O estado Not Runnable significa que a thread está impedida de executar por alguma
razão. Existem 4 maneiras de uma thread ir para o estado Not Runnable.
Cada uma destas maneiras tem a sua forma específica de sair do estado Not Runnable.
1. se a thread foi suspensa, alguém precisa mandar-lhe a mensagem resume();
2. se a thread foi posta para dormir, ela voltará a ser Runnable quando o número de
milisegundos determinado passar;
3. se a thread está bloqueada, esperando por I/O, a operação precisa ser
completada;
4. se a thread está esperando por uma variável de condição, o objeto que a retém
precisa liberá-la, através de um notify() ou de um notifyAll()
• Dead
Uma thread pode morrer de “causas naturais” (quando o seu método run() acaba
normalmente) ou pode ser morto pelo método stop().
Para descobrir a prioridade de uma thread, podemos usar o método getPriority() e, para
defini-la setPriority(n), onde n é um inteiro de 1 a 10 (10 representando a prioridade
máxima).
Suponha que você queira, agora, implementar uma thread dentro de uma applet. Por
exemplo, suponha que você quer fazer uma applet relógio, que atualiza o seu display a
cada segundo. A classe que vai implementar o seu relógio precisa ser uma subclasse da
classe Applet para herdar todas as facilidades oferecidas por ela. Como fazê-la, então,
herdar também da classe Thread? A interface Runnable é a solução!
Qualquer objeto que implemente a interface Runnable pode utilizar o seu método run()
para ser executado como uma thread.
No método stop() do applet Clock, temos que chamar também o método stop() da thread
clockThread, caso contrário, a thread vai continuar executando e consumindo recursos
mesmo depois que sairmos da página da applet.
Se você revisitar a página, o start() da applet Clock é chamado novamente e uma nova
thread é inicializada.
//RelogioDigital.java
import java.awt.*;
import javax.swing.*;
import java.util.*;
public RelogioDigital() {
super("Relogio Digital");
setSize(60, 60);
setLocation(100,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel painel = new JPanel();
painel.setLayout(new GridLayout(1, 1, 15, 15));
painel.add(j);
setContentPane(painel);
show();
}
Janela() {
if (executa == null) {
executa = new Thread(this);
executa.start();
}
}
3) compilar e executar.
4) A seguinte tela será mostrada:
//SinalTransito.java
import java.awt.*;
import javax.swing.*;
public SinalTransito() {
super("Sinal de Transito");
setSize(100, 330);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container pane = getContentPane();
BorderLayout bord = new BorderLayout();
pane.setLayout(bord);
pane.add(luz, "Center");
setContentPane(pane);
show();
}
LuzSinal() {
if (executar == null); {
executar = new Thread(this);
executar.start();
}
}
}
}
else
comp2D.setColor(Color.black);
comp2D.fillOval(0, 200, 100, 100);
}
}
3) Compilar e executar.
4) A seguinte tela será mostrada mudando o sinal de transito.
public BannerLinha() {
super("Banner em linhas");
setSize(420, 100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
pane.setLayout(new GridLayout(1, 1, 15, 15));
pane.add(novo);
setContentPane(pane);
show();
novo.rolar();
}
"Sun Microsystem"
};
int y = 76;
void rolar() {
while (true) {
y = y - 1;
if (y < -75)
y = 76;
repaint();
try {
Thread.sleep(250);
} catch (InterruptedException e) { }
}
}
3) Compilar e executar.
4) A seguinte tela será mostrada:
//Checar.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public Checar() {
super("Checar");
setSize(210, 170);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
BorderLayout border = new BorderLayout();
pane.setLayout(border);
pane.add(checar, "Center");
painelbotoes.add(btparar);
pane.add(painelbotoes, "South");
setContentPane(pane);
show();
}
void iniciarAnimacao() {
if (executar == null); {
executar = new Thread(this);
executar.start();
}
}
void pararAnimacao() {
if (executar != null); {
executar = null;
}
}
3) Compilar e executar.
4) A seguinte tela será mostrada:
//Pete.java
import java.awt.*;
import javax.swing.*;
import java.util.*;
public Pete() {
super("Pixel Pete");
setSize(452, 146);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel pane = new JPanel();
pane.setLayout(new GridLayout(1, 1, 15, 15));
pane.add(pete);
setContentPane(pane);
show();
}
PetePanel() {
super();
setBackground(Color.black);
String peteSrc[] = { "right1.gif", "right2.gif",
"right3.gif", "stop.gif", "blink.gif",
"wave.gif" };
Toolkit kit = Toolkit.getDefaultToolkit();
for (int i=0; i < petePics.length; i++) {
petePics[i] = kit.getImage(peteSrc[i]);
}
back = kit.getImage("backdrop.gif");
if (runner == null) {
runner = new Thread(this);
runner.start();
}
}
}
}
} catch (InterruptedException e) { }
}
}
3) Compilar e executar.
4) Será mostrada a seguinte tela:
A JDBC implementa em Java a funcionalidade definida pelo padrão SQL Call Level
Interface ou SQLCLI. Um outro exemplo de API que implementa o SQL Call Level
Interface é o popularíssimo ODBC das plataformas Wintel. A maioria dos fornecedores de
bancos de dados oferece uma implementação particular de SQLCLI. A vantagem de
JDBC é a portabilidade da aplicação cliente, inerente da linguagem Java. A especificação
corrente da JDBC API é a 2.1.
- Uma vez que ODBC é uma especificação padrão do mundo Wintel, o tipo 1 é um driver
de ponte entre Java e ODBC. O driver de ponte mais conhecido é o fornecido pela Sun o
JDBC-ODBC bridge. Este tipo de driver não é portável, pois depende de chamadas a
funções de ODBC implementadas em linguagem C e compiladas para Wintel, ou outra
plataforma ODBC compatível, as chamadas funções nativas.
- O tipo 3 é um driver totalmente Java que se comunica com algum tipo de middleware
que então se comunica com o banco de dados
Código:
import java.sql.*;
A primeira coisa a fazer é estabelecer uma conexão com o banco de dados. Fazemos isso
em dois passos: primeiro carregamos o driver para o banco de dados na JVM da
aplicação. Uma vez carregado, o driver se registra para o DriverManager e está disponível
para a aplicação. Utilizamos então a classe DriverManager para abrir uma conexão com o
banco de dados. A interface Connection designa um objeto, no caso con, para receber a
conexão estabelecida:
Código:
try //A captura de exceções SQLException em Java é obrigatória para usarmos JDBC.
{
// Este é um dos meios para registrar um driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver")
Código:
// Após estabelecermos a conexão com o banco de dados
// Utilizamos o método createStatement de con para criar o Statement
Statement stm = con.createStatement();
de dados. Esta interface apresenta uma série de métodos para prover o acesso aos
dados:
Código:
// Definido o Statement, executamos a query no banco de dados
ResultSet rs = stm.executeQuery(SQL);
E nosso acesso está terminado. O importante agora é liberar os recursos alocados pelo
banco de dados para a execução deste código. Podemos fazer isso fechando o
Statement, que libera os recursos associados à execução desta consulta mas deixa a
conexão aberta para a execução de uma próxima consulta, ou fechando diretamente a
conexão, que encerra a comunicação com o banco de dados. Para termos certeza de que
vamos encerrar esta conexão mesmo que uma exceção ocorra, reservamos o fechamento
para a cláusula finally() do tratamento de exceções.
Código:
try
{
con.close();
}
catch(SQLException onConClose)
{
System.out.println("Houve erro no fechamento da conexão");
onConClose.printStackTrace();
}
1) Abra o JCreator
2) Digite o código abaixo:
// MeusCds.java
import java.sql.*;
public MeusCds(){
// programa principal
public static void main (String a[]){
MeusCds m = new MeusCds();
}
}
Clique no botão
adicionar
Clique em Microsoft
Acess Driver.
Clique em
concluir
5) Ao clicar na opção Microsoft Acess Driver e depois concluir será exibida a seguinte tela:
6) Clicar no botão nos botões Ok até fechar as janelas, fechar o painel de controle.
public ApClientes(){
// Criando a janela e configurando
super("Cadastro de Clientes");
setSize(500,150);
setLocation(0,0);
setDefaultCloseOperation(EXIT_ON_CLOSE);
// criando paineis
pacima = new JPanel(new GridLayout(3,4));
pabaixo = new JPanel(new GridLayout(1,2));
// criando botoes
btadicionar = new JButton("Adicionar");
btadicionar.addActionListener(this);
btlimpar = new JButton("Limpar");
btlimpar.addActionListener(this);
// criando labels
lbnome = new JLabel(" Nome");
lbendereco = new JLabel(" Endereço");
lbcep = new JLabel(" CEP");
lbcidade = new JLabel(" Cidade");
lbuf = new JLabel(" UF");
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
82
// Adicionando os objetos
getContentPane().add(pacima,BorderLayout.NORTH);
getContentPane().add(pabaixo,BorderLayout.SOUTH);
pacima.add(lbnome);
pacima.add(txnome);
pacima.add(lbendereco);
pacima.add(txendereco);
pacima.add(lbcep);
pacima.add(txcep);
pacima.add(lbcidade);
pacima.add(txcidade);
pacima.add(lbuf);
pacima.add(txuf);
pabaixo.add(btadicionar);
pabaixo.add(btlimpar);
show();
}
txcep.setText("");
txcidade.setText("");
txuf.setText("");
}
}
public static void main(String a[]){
ApClientes ap = new ApClientes();
}
}
Clique no botão
adicionar
Clique em Microsoft
Acess Driver.
Clique em
concluir
5) Ao clicar na opção Microsoft Acess Driver e depois concluir será exibida a seguinte tela:
6) Clicar no botão nos botões Ok até fechar as janelas, fechar o painel de controle.
// string conectar o bd
String dbconexao = "jdbc:odbc:CADCLIENTE";
8) Salvar e compilar
9) Acesse o arquivo ApClientes.java
10) Compilar e exceutar
11) Cadastre alguns clientes.
12) Acesse o banco de dados CR.mdb que esta dentro da sua pasta
13) Abra a tabela cliente e veja se os nomes foram cadastrados.
// Clientes.java
// Inserindo, atualizando e pesquisando dados em um banco de dados
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.ScrollPaneLayout;
public Clientes() {
Container c = getContentPane();
4) Salvar e compilar
5) Crie um novo arquivo e digite o código abaixo:
// RotuloClientes.java
// Definição da classe RotuloClientes
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.ScrollPaneLayout;
public RotuloClientes()
{
// Painel de Rótulo
labelPanel = new JPanel();
labelPanel.setLayout(new GridLayout( labels.length, 1 ) );
// Painel de TextField
fieldsPanel = new JPanel();
fieldsPanel.setLayout(new GridLayout( labels.length, 1 ) );
id = new JTextField( 20 );
id.setEditable( false );
fieldsPanel.add( id );
first = new JTextField( 20 );
fieldsPanel.add( first );
last = new JTextField( 20 );
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
88
fieldsPanel.add( last );
address = new JTextField( 20 );
fieldsPanel.add( address );
city = new JTextField( 20 );
fieldsPanel.add( city );
state = new JTextField( 20 );
fieldsPanel.add( state );
zip = new JTextField( 20 );
fieldsPanel.add( zip );
country = new JTextField( 20 );
fieldsPanel.add( country );
email = new JTextField( 20 );
fieldsPanel.add( email );
home = new JTextField( 20 );
fieldsPanel.add( home );
fax = new JTextField( 20 );
fieldsPanel.add( fax );
6) Salvar e compilar
7) Cire um novo arquivo e digite o código abaixo:
// BotoesPainel.java
// Definição da classe BotoesPainel
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.ScrollPaneLayout;
// NovoClientes.java
// Definição da classe NovoClientes
import java.awt.*;
import java.awt.event.*;
import javax.swing.ScrollPaneLayout;
//Limpa os campos
public void actionPerformed( ActionEvent e )
{
fields.id.setText( "" );
fields.first.setText( "" );
fields.last.setText( "" );
fields.address.setText( "" );
fields.city.setText( "" );
fields.state.setText( "" );
fields.zip.setText( "" );
fields.country.setText( "" );
fields.email.setText( "" );
fields.home.setText( "" );
fields.fax.setText( "" );
}
}
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
90
9) Salvar e compilar
10) Crie um novo arquivo e digite o código abaixo:
// EditarClientes.java
// Definição da classe EditarClientes
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.ScrollPaneLayout;
if ( ! fields.id.getText().equals( "" ) ) {
String query = "UPDATE addresses SET " +
"firstname='" + fields.first.getText() +
"', lastname='" + fields.last.getText() +
"', address='" + fields.address.getText() +
"', city='" + fields.city.getText() +
"', stateorprovince='" +
fields.state.getText() +
"', postalcode='" + fields.zip.getText() +
"', country='" + fields.country.getText() +
"', emailaddress='" +
fields.email.getText() +
"', homephone='" + fields.home.getText() +
"', faxnumber='" + fields.fax.getText() +
"' WHERE id=" + fields.id.getText();
if ( result == 1 )
JOptionPane.showMessageDialog(
null, "Registro alterado." , "Aviso",
JOptionPane.PLAIN_MESSAGE );
else {
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
91
JOptionPane.showMessageDialog(
null, "Falha na alteração!" , "Aviso",
JOptionPane.WARNING_MESSAGE );
fields.first.setText( "" );
fields.last.setText( "" );
fields.address.setText( "" );
fields.city.setText( "" );
fields.state.setText( "" );
fields.zip.setText( "" );
fields.country.setText( "" );
fields.email.setText( "" );
fields.home.setText( "" );
fields.fax.setText( "" );
}
statement.close();
}
else
JOptionPane.showMessageDialog(
null, "\nUse Alterar somente quando\n " +
"existim registros. Use Pesquisar para\n " +
"localizar um registro, então\n " +
"modifique a informação e\n " +
"pressione Alterar.\n" , "Aviso",
JOptionPane.PLAIN_MESSAGE );
}
catch ( SQLException sqlex ) {
sqlex.printStackTrace();
JOptionPane.showMessageDialog(
null, sqlex.toString(), "Aviso",
JOptionPane.WARNING_MESSAGE );
}
}
}
connection = c;
fields = f;
output = o;
}
if ( result == 1 )
JOptionPane.showMessageDialog(
null, "A inseção foi um sucesso.", "Aviso",
JOptionPane.PLAIN_MESSAGE );
else {
JOptionPane.showMessageDialog(
null, "A inserção falhou!.", "Aviso",
JOptionPane.WARNING_MESSAGE );
fields.first.setText( "" );
fields.last.setText( "" );
fields.address.setText( "" );
fields.city.setText( "" );
fields.state.setText( "" );
fields.zip.setText( "" );
fields.country.setText( "" );
fields.email.setText( "" );
fields.home.setText( "" );
fields.fax.setText( "" );
}
}
else{
JOptionPane.showMessageDialog(
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
93
statement.close();
}
}
catch ( SQLException sqlex ) {
JOptionPane.showMessageDialog(
null, sqlex.toString(), "Aviso",
JOptionPane.WARNING_MESSAGE );
}
}
}
if ( recordNumber != 0 ) {
fields.id.setText( String.valueOf( recordNumber));
fields.first.setText( rs.getString( 2 ) );
fields.last.setText( rs.getString( 3 ) );
fields.address.setText( rs.getString( 4 ) );
fields.city.setText( rs.getString( 5 ) );
fields.state.setText( rs.getString( 6 ) );
fields.zip.setText( rs.getString( 7 ) );
fields.country.setText( rs.getString( 8 ) );
fields.email.setText( rs.getString( 9 ) );
fields.home.setText( rs.getString( 10 ) );
fields.fax.setText( rs.getString( 11 ) );
}
else{
JOptionPane.showMessageDialog(
null, "Registro não encontrado!!" , "Aviso",
JOptionPane.WARNING_MESSAGE );
}
}
catch ( SQLException sqlex ) {
JOptionPane.showMessageDialog(
null, "Registro não encontrado!!" , "Aviso",
JOptionPane.WARNING_MESSAGE );
}
}
}
// ExcluirClientes.java
// Definição da classe ExcluirClientes
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;
SCRS 504 Bl. – B Ent. – 53 1º Andar Tel.: (61) 3225-7784
CEP - 70331-550 Brasília - DF
95
import javax.swing.ScrollPaneLayout;
statement.executeQuery( query );
statement.close();
}
else
JOptionPane.showMessageDialog(
null, "É preciso ter um registro para apagar!!" , "Aviso",
JOptionPane.WARNING_MESSAGE );
}
catch ( SQLException sqlex ) {
JOptionPane.showMessageDialog(
null, "Registro Apagado!!!", "Aviso",
JOptionPane.PLAIN_MESSAGE );
}
}
}
18)Salvar e compilar
19)Acesse o arquivo Clientes.java.
20) Acessar o painel de controle do Windows, acessar o ícone ferramentas
administrativas, acessar o ícone fonte de dados ODBC a seguinte janela será
apresentada:
Clique no botão
adicionar
Clique em Microsoft
Acess Driver.
Clique em
concluir
Ao clicar na opção Microsoft Acess Driver e depois concluir será exibida a seguinte tela:
Clicar no botão nos botões Ok até fechar as janelas, fechar o painel de controle.
JSP significa (JAVA Server PAGE). Esta tecnologia é usado para servir conteúdo dinâmico
para o usuário, usando lógica e dados do lado do servidor. JSP faz parte do J2EE (Java 2
Enterprise Edition) e juntamente com Java Servlets e Java Beans podem ser usadas para
desenvolver aplicações Web eficientes,escaláveis e seguras rapidamente.