javaoop(iiibim)-vb [modo de compatibilidade]iiibim)-vb.pdf · usando o pacote (awt - abstract...
TRANSCRIPT
Universidade do Vale do ParaíbaColégio Técnico Antônio Teixeira Fernandes
Disciplina Programação Orientada a Objetos - III
Material III-Bimestre
Estudo da linguagem Java em
ambiente gráfico pacote(awt,swing) Manipulação de Banco de Dados
Site : http://www1.univap.br/~wagner
Prof. Responsável
Wagner Santos C. de Jesus
O que vem a ser o pacote (awt)
Para trabalharmos na linguagemJava comferramentas para criação e Lay-out deFormulários uma das ferramentas que podemosusar é umpacote gráfico denominado (awt) cujosignificado é (Abstract WindowToolKit - Kit deabstração para o trabalho comJanelas). Comessa ferramenta é possível nos trabalharmos comcomponentes gráficos combotões, caixa de textoetc.
Usando o pacote (awt - Abstract Window Toolkit).
Para usar o componentes desse pacote énecessário importa-lo para seu programaisso é feito usando o comando (import).
Funcionamento (awt)
Usando comando import.
Importando o pacote (awt).
Exemplo: import java .awt.*;
Frame :Criando um formulário para uma aplicação.
Para se criar umformulário emJava usamosuma classe chamdaFrame().
Obs : UmFrame pode ser instanciado comoqualquer outro objeto mais para criarmosuma estrutura onde todos os objetos serãocriados a partir de umFrame usamos ocomando extends.
extends - Estendendo uma Classe
extends :Cria uma super classe para o objeto
permitindo que todos os outros estejam
contidos nessa mesma classe.
Estrutura Básica.
public classtesteextends Frame{
:: Criação dos Componentes gráficos:
}
Exemplo Estrutura Completa :public classtesteextends Frame{
public teste() {
: Criação dos Componentes gráficos:
}
public eventos() {:: Criação da Lógica .....
}
public static void main(..........) {: <Instancia da classe>
}
}
Criando os componentes gráficos
Panel() : Para se adicionar umobjeto emqualquer parte da aplicação é necessário acriação de umpainel para esse objeto.
Sintaxe :Panel <Nome-Objeto>;
Exemplo :
Panel p1;:p1 = newPanel();
Label() : Para se criar um rótulo escrito natela é necessário usar a classe Label().
Sinatxe :
Label <Nome-Objeto>;
Exemplo :
Label L1;:L1 = new Label("MensagemEnviada .... ");
Button() : Para se cria um objeto botão é necessário usar a classe button.
Sintaxe :
Button <Objeto>;
Exemplo :
Button Botao1;:Botao1 = newButton("Ok");
TextField() : Classe que permite a criação de uma caixa de texto.
Sintaxe :TextField <Objeto>;
Exemplo ::TextField text1;text1 = newTextField("Mensagem",10);
Obs : A string mensagem irá aparecer na caixa de texto e o valor 10 é
o tamanho da caixa de texto.
Métodos setLayout() :
Para se criar um formulário é necessário dizer que tipo de formulário
estamos usando, para isso usamos o métodosetLayout().
Sintaxe :
setLayout(<tipo-do-formulário>);
Obs : Os tipos de formulários são Fluxo,Borda, Grade. Sendo que iremos
tratar apenas com o estilo de Bordas.
Exemplo setLayout()
Exemplo:
setLayout( newBorderLayout());
O layout de borda é representado pelos pontos cardeais da seguinte maneira.
Criando as coordenadas para o Formulário.
add() : Associa umobjeto a umoutro no caso
umPainel.
Sinatxe :
add(<coord>,<Objeto>); ou <objeto>.add(<Objeto>);
Criando os Objetos em um formulário
(Instanciando os Componentes)
Exemplo Prático da utilização de um objeto. Label()
Panel p1;Label rotulo1;::p1 = new Panel();add("North",p1);rotulo1 = new Label("Olá Mundo ");p1.add(rotulo1);::
Exemplo Prático da utilização de um objeto. Button()
Panel p1;Button btn1;::p1 = new Panel();add(”South",p1);btn1 = new Button(" Ok ");p1.add(btn1);::
Exemplo Prático da utilização de um objeto. TextField()
Panel p1;TextField caixa1;::p1 = new Panel();add(”North",p1);caixa1 = new TextField(10);p1.add(caixa1);::
Criando botões agrupado (botões de radio). Classe CheckboxGroup(). Irá criar um agrupamento para os objetos que serão associados a
CheckboxGroup().
Sintaxe :
CheckboxGroup <objeto>;
Exemplo :
CheckboxGroup grupo;grupo = new CheckboxGroup();
Checkbox() : Cria objetos botões de radio para escolha do usuário.
Sintaxe :
Checkbox <Objeto>;<objeto> = new Checkbox(<String>,[<grupo>],<boolean>);
Onde :
<String> - vem a ser a string que vai aparece escrita no formulário.
<grupo> - variável instanciada pela classe CheckBoxGroup.
<boolean> - operador booleano true/false onde deverá que apareça a
bolinha de indicação de escolha.
Exemplo : Botões de Rádio
Exemplo :::grupo = new CheckboxGroup();c1 = new Checkbox("Masculino",grupo,false);c2 = new Checkbox("Feminino",grupo,true);tela3 = new Panel();add("North",tela3);tela3.add(c1);tela3.add(c2);
Para cria caixa de verificação basta tirar o objeto da classeCheckboxGroup()
Exemplo :
c1 = new Checkbox("Pokemons",false);c2 = new Checkbox("Poderosas",false);tela3 = new Panel();add("North",tela3);tela3.add(c1);tela3.add(c2);
Capturando dados de um CheckboxGroup(). (Botão de Rádio)
Usamos os métodos :
getCurrent() - Retorna o objeto que foi selecionado.getLabel() - Retorna como rótulo da opção selecionada no Checkbox.
Sintaxe :
<VarString> = <grupo>.getCurrent().getLabel();
Exemplo :
String opcao = grupo.getCurrent().getLabel();
Capturando dados de um Checkbox(). (Caixa de Verificação)
Usamos o método :
getState() - Retona umbooleando true/false, true se tiver selecionadoe falso caso não esteja.
Sintaxe :
<boolean> = <objeto>.getState();
Exemplo :
boolaen teste = c1.getState();
Choice() -Classe Choice cria uma caixa de combinação(Combobox).
Sintaxe :
Choice <Objeto>;::<Objeto> new Choice();::addItem() - Adiciona itens em uma caixa de combinação ou Lista.
Sintaxe :
<Objeto>.addItem(<String>);
Exemplo : Criação de uma caixa de combinação contendo itens.
Choice combo1;::combo1 = new Choice();combo1.addItem("Jose");combo1.addItem("Paula");combo1.addItem("Fernanda");tela3 = new Panel();add("North",tela3);tela3.add(combo1);::
List() - A classe List cria um objeto de caixa de lista.
Sintaxe :
::List <Objeto>;:<Objeto> = new List(<ExpN>,<Boolean>);::Onde :
<ExpN> - Número inteiro que representa quantas linhas serãomostradas pela caixa de lista.<Boolean> - true/false que indique se a caixa de lista poderáounão selecionar mais de umitem.
Exemplo : List()
Exemplo :::lista1 = new List(3,false);lista1.addItem("Jose");lista1.addItem("Paula");lista1.addItem("Fernanda");lista1.addItem("Marta");lista1.addItem("Solange");tela3 = new Panel();add("North",tela3);tela3.add(lista1);:
Capturando dados de uma caixa de lista ou combinação. (getSelectedItem())
Sintaxe :
<VarString> = <Objeto>.getSelectedItem();
Exemplo :
String opcao = lista1.getSelectedItem();
Obs : Retorna para a variável opção com o item selecionado na caixade
lista.
select(<indice>) : Seleciona automaticamente um elemento da lista.
Sintaxe :
caixadelista.select(<Num>);
Exemplo :
lista1.select(0);
getSelectedIndex() :Retorna como numero do índiceselecionado na lista.
Obs : Caso nenhumitem seja selecionado por umusuárioo valor retornado será -1.
Sintaxe :
<VarInt> = caixadelista.getSelectedIndex();
Exemplo :
int x = lista1.getSelectedIndex();
getItemCount(): Retorna o numero de itens da lista.
Sintaxe :
<VarInt> = caixadelista. getItemCount();
Exemplo:
int y = lista1. getItemCount();
getItem(<Indice>): Captura o elemento baseado no índice anteriormente selecionado na lista.
Sintaxe :
<VarString> = caixadelista.getItem(<Indice>);
Exemplo :
int k = lista1.getSelectedIndex();String dado = lista1.getItem(k);
remove(): Apaga um elemento da lista apontado pelo índice selecionado.
Sintaxe :
Caixadelista.remove(<Indice>);Caixadelista.removeAll(); -Remove todos os elementos da lista.
Exemplo :
int k = lista1.getSelectedIndex();lista.remove(k);
Métodos de controle do formulário.
SetTitle() : Define o título doformulário na linha deTítulo.
Sintaxe :
SetTitle(<String>);
Exemplo :
SetTitle("Awt-Java");
reshape() : Especifica as coordenadas do tamanho do formulário.
Sintaxe :
reshape(x1,y1,x2,y2);
Onde : x1,y1 - São as coordenadas superiores.x2,y1 - São as coordenadas inferiores. (São dadas emPixels)
Exemplo :
reshape( 100,100,200,200 );
Exemplo da referencia das coordenadas do formulário.
show(): Método que exibe o formulário na tela.
Exemplo : show();
Obs : Caso o método show() não sejacolocado no programa o formulárionão será exibido.
setResizable() -Ativa ou desativa a propriedade de restaurar o
formulário.(true/false)
Sintaxe :
setResizable(<boolean>);
Exemplo : setResizable(false);
setEnabled() -Habilita ou desabilita um determinado objeto. (true/false)
Sintaxe :
<Objeto>.setEnabled(<Boolean>);
Exemplo : Método setEnabled()
Exemplo
::tela2 = new Panel();b1 = new Button(" OK ");add("South",tela2);tela2.add(b1);b1.setEnabled(false);::
Classes para controle de cores e fontes.
Color() - Para se setar a palheta de corespara umobjeto é preciso criar umobjeto decores coma classe Color() que trabalha nopadrão RGB.
Sintaxe : (Instancia)
Color cor = new Color(R,G,B);
Demonstração da Tabela RGB abaixo.
Métodos que ligam a paleta de cores.
setBackground() - Ativa a cor no fundo doobjeto.setForeground() - Ativa a cor na borda(letra) do objeto.Sintaxe :
<Objeto>.setBackground(<Objeto-cor>);ou<Objeto>.setForeground(<Objeto-cor>);
Exemplo : setBackground()
:
tela1 = new Panel();Label label1 = new Label("Testando Cor");add("North",tela1);tela1.add(label1);Color corlabel = new Color(255,0,0);label1.setBackground(corlabel);:
Exemplo : setForeground()
Exemplo : setForeground():tela1 = new Panel();Label label1 = new Label("Testando Cor");add("North",tela1);tela1.add(label1);Color corlabel = new Color(255,0,0);label1. setForeground (corlabel);
:
Font() - Criando Fonte com a classe Fonte.
Sinatxe :
Font <Objeto> = new Font(<Letra>,<Estilo>,<Tamanho>);
setFont()- Para aplicar a fonte desejada para um objeto é necessário usar
o método setFont();
Exemplo : Método setFont()
:
:tela1 = new Panel();Label label1 = new Label("Testando Cor");add("North",tela1);tela1.add(label1);Font fonte = new Font("Times New Romam",Font.ITALIC,12);label1.setFont(fonte);::
Resultado do Método : setFont()
SetText()/getText(): setText() Envia uma String para um objeto Botão, Rótulo ou caixa de texto. getText() - captura dados de um objeto.
Sintaxe :
<Objeto>.setText(<String>);
Exemplo :
label1.setText("Olá Mundo");String s = label1.getText();
Trabalhando com Evento Básicos.
Para se tratar com eventos em Java usa-se dois métodos principais. (boolean) action e handleEvent()
action() Sintaxe do Método :
public boolean action(Event evt, Object ob) {:: <Código>return true;
}
handleEvent() Sintaxe do Método :
public boolean handleEvent (Event evt) {:: <Código>return true;
}
Exemplo Método action()
Exemplo Método action() :
public boolean action(Event evt, Object ob){
if("Sair".equals(ob))System.exit(0);
return true;}
Exemplo do Método : handleEvent ()
Exemplo Método handleEvent () :
public boolean handleEvent(Event evt){switch(evt.id){
case Event.ACTION_EVENT:if("Sair".equals(evt.arg))
System.exit(0);
if("Ok".equals(evt.arg))text1.setEnabled(true);
return true;
case Event.WINDOW_DESTROY:System.exit(0);return true;
}return true;
}
Programa Exemploimport java.lang.*;import java.awt.*;
public class matl extends Frame {Panel tela;Panel pbotao;Label rotulo;Button b1;Font f1;
public matl(){setLayout(new BorderLayout());
tela = new Panel();rotulo = new Label();add("Center",tela);rotulo.setText("Ola Mundo");tela.add(rotulo);
// Cria Botaopbotao = new Panel();add("South",pbotao);b1 = new Button("Mostra");pbotao.add(b1);Button b2 = new Button("Sair");pbotao.add(b2);
f1 = new Font("Time New Roman",Font.ITALIC,12);// Tamanho da fonte e tipo
rotulo.setFont(f1);Color cor = new Color(214,205,194);setBackground(cor);
reshape(10,10,200,200); // Tamanho da tela.show(); // Exibe Formulario na tela.
}
public boolean action(Event evt,Object arg){
if("Mostra".equals(arg))rotulo.setText("Ola Turma");
if("Sair".equals(arg))System.exit(0);
return true;}public static void main(String args[]){
new matl();}
}
Swing
Vem a umpacote da linguagemJava que semistura comawt recursos para construção deaplicações gráficas.
awt
SwingApplet
Aplicação
Desenhar
Para implementar uma aplicação usandoSwing é necessário importa o pacote.
Exemplo :
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
Criando um objeto (Componente)
Para se cria umobjeto de formulário usandoo pacote Swing é necessário adicional aletra (J) na frente do componente.
Exemplo : JFrame, JButton, JLabel etc.
Container
Component
List Button Container Label CheckBox
Window
Frame
JComponent
JLabel
JButton
J(.......)
ContainerA classe Container permite criar umm container para um futuro objeto em tela.
Instância com método : getContentPane();
Container tela = getContentPane();
setBounds()Determina emque posição de tela serão colocados os objetos,comrelação entre linha e coluna e tamanho do mesmo.
Exemplo :
<objeto>.setBounds(int x, int y, int l, int a)
x – Coluna da telay – Linha da telal – Largura do objetoa – Altura do objeto
Exemplo :
Container tela = getContentPane();tela.setLayout(null);JLabel rotulo = new JLabel("Seu Nome:"); tela.add(rotulo); rotulo.setBounds(10,5,200,20);
JTextField nome = new JTextField(10);tela.add(nome);nome.setBounds(10,30,200,20);
JButton – Define Botões de comandos
Exemplo :
JButton obj1 = new JButton(“Ok”);
JButton obj2 = new JButton(“Ok”,icone);
JButton obj2 = new JButton(icone);
Exemplo: ImageIcon()
ImageIcon icone = new ImageIcon(“arq.gif”);
JLabel - Define rótulos de mensagens
Exemplo:
JLabel Obj = new JLabel(“Msg”);
JLabel Obj = new JLabel(“Msg”,Icone);
JLabel Obj = new JLabel(“Msg”,Icone, posi);
Exemplo :ImageIcon()
JLabel Obj = new JLabel(“Msg”,Icone, posi);
setSize() : Define o tamanho do formulário.
Exemplo :
setSize(200,100); // Coluna 200 linha 100
setVisible() : Exibe o formulário em modo Swing
Exemplo :
setVisible(true); // Exibição do Formulário.
Exemplo prático :
JLabel Obj = new JLabel(“projeto”,”MAbrir.gif”,JLab el.LEFT);
JPasswordField()
Permite realizar a digitação de caracteresque não serão apresentados na caixa deentrada, exemplo uma senha.
Exemplo :
JPasswordField caixasenha = new JPasswordField (10);
Método: setEchoChar()
Determina qual o caractere poderá serapresentado no momento da digitação dacaixa.
Exemplo : Padrão (* )
caixasenha.setEchoChar(‘#');
Método: getPassword()Captura a senha de uma caixa de JPasswordField,
esse método irá retorna umvetor de caracteresprecisando ser convertidos emString.
Exemplo :
String senha = newString(caixasenha.getPassword() );
showMessageDialog()Imprime uma mensagemsemforma enviada comoparâmetro, sendo os parâmetros opcionais.
Sintaxe : Construtor
JOptionPane.showMessageDialog( janela, Msg, [Títlo, mType, Icon] );
Exemplo Saída
Exemplo :public static void main(String args[]){
Controle5 app = new Controle5();app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
Obs : Ao selecionar a opção fechar no formulário todos oscomponentes serão cancelados e o controle retorna para o sistemaoperacional que esta sendo usando pelo usuário.
Manipulador e Adaptador Eventos
addMouseListener( )
new MouseAdapter()
mouseClicked()
Instância da classe
JButton, JLabel, etc
Código de programa
Obs : O método addMouseListener() deve ser escrito dentro da classe de interface.
Exemplonome = new JTextField(10); tela.add(nome);nome.setBounds(10,25,200,20);
JButton btn = new JButton("Ok"); btn.setBounds(10,45,70,20);
btn.addMouseListener( new MouseAdapter() {public void mouseClicked(MouseEvent evento) {JOptionPane.showMessageDialog(null,nome.getText()); }
}); // Parenteses
Manipulação de Banco de Dados
Conectando a uma Base de dados usando o dispositivo de controle e sql (JDBC).
Aplicação
JDBC
Banco
Dados
Visão
(Interface)Controle Aplicação
Aplicação Orientada a Objetos
Padrão MVC (Module View Control)
B r
o w
s e
r servlet
JSP
awt
Swing
APPLET
JavaBeans
Banco Dados
Visão da Aplicação Java
JVM
import java.sql.*;
Para utilizar uma aplicação JDBC(JavaDataBase Connection). É necessário importaro pacote (sql) para que se possa usar os recursode acesso ao banco de dados.
Comunicação com Banco Dados
Sistema Operacional
Banco de Dados
Aplicação (Java)
JDBC
Class.forName()
Instanciando umDriver padrão para queo Java possa reconhecer qual tipo deDrive o sistema operacional usado irábuscar no momento da execução doprograma.
Exemplo :
Class.forName("com.mysql.jdbc.Driver");
Exemplo de Conexão
Class.forName("com.mysql.jdbc.Driver");
Seria o Driver de conexão entre o banco de dados e as instruções SQL.
DriverManagerSua principal responsabilidade é manteruma lista de implementações de driver eapresentar a uma aplicação que responda aURL requisitada.
Autenticação DriverManagerBanco, Senha, Usuário
Aplicação DriverManager
Banco Dados Banco Dados Banco Dados
Access Oracle SQL-SERVER
Data Warehouse
Função do Driver ODBC
Connection
A Classe Connection permite representaruma única conexão de banco de dadoslógico. Ou seja, você usa a classeConnection para enviar uma série deinstruções SQL ao banco de dados econtrolar o registro ou aborto dasinstruções.
Exemplo : DriverManager
String c_user=“root”;
String c_senha="";
String c_fonte="jdbc:mysql://localhost/NomeBancodeDados";
Connection con;
con=DriverManager.getConnection(c_fonte,c_user,c_senha);
Statement
Cria uma conexão física direta comabase dados reconhecida porDriverManager, fazendo comque asinstruções SQLpossamser enviadas aobanco de dados especificado.(createStatement()).
Exemplo : createStatement()
Statement st=con.createStatement();
O método acima permita fazer a conexão lógica comabase de dados. Onde st passa a ser umobjeto quepoderá ser tratado comuma instrução SQL.
Linguagem SQL
Vem a ser uma linguagemde manipulaçãode dados cominstruções declarativas quepermite facilitar o acesso de (Inserção,Deleção, Consulta e Atualização) e criaçãoemtabelas de bancos de dados.
DML(Linguagem Manipulação de Dados).
PROGRAMAS API´S
DADOS
D M LSGBD
Programadores
Instruções Básicas de SQL(DML)
• Insert - Grava dados em uma tabela.
• Delete - Apaga dados de uma tabela.
• Update - Altera dados de uma tabela.
• Select - Consulta dados de uma tabela.
executeUpdate()
Método que permite executarumainstruçãoSQL diretaou seja(Delete, Updateou Insert).
Exemplo de Deletest.executeUpdate(”Delete From tabela where nome = ‘José da Silva’ “);
Exemplo de Insertst.executeUpdate(”Insert Into Tabela (Nome, Fone) Values ( ‘Ana’ , ’66-6666’ ) “);
Exemplo de Updatest.executeUpdate(”Update Tabela set nomeAluno = ‘Maria da Coves’
Where Codigo = ‘001’“);
Exemplo de Insert com dados
sql = “insert into consulta(paciente,medico) values( “ ;sql = sql + “ ‘ “ + vpaciente + “ ‘, “ ;sql = sql + “ ‘ “ + vmedico + “ ‘ “+” ) ” ;
int reg = st.executeUpdate(str1);
Exemplo de Update com dados
str1 = “update agendamento set nome = ‘ “+ vnome + “ ‘ where codigo = ‘ “ +tcc+ “ ‘ “;
int reg = st.executeUpdate(str1);
Abertura de um cursor para localização em arquivo.
Jose
Pedro
Paulo
Roberta
Banco Dados
ResultSet
Movimentação para um tipo de navegação para
conjunto de resultados.
Realizar a navegação seqüencial no registros do banco de dados(Sempre do primeiro para o último).
executeQuery()
Método usado para enviar instruções deconsulta ao banco de dados ou seja Select.
Onde ResultSet será o resultado da consulta.
Exemplo :
ResultSet rs=st.executeQuery("SELECT*FROM TABELA");
first()
Posiciona o ponteiro no inicio da tabela emumbanco de dados.
Exemplo :
rs.first();
next()
Move o ponteiro para o próximo registro em um banco de dados.
Exemplo :
rs.next();
close()
Método close(), fecha uma conexão feita auma tabela de umbanco de dados.
Exemplo : con.close();
try { ..} catch() {...}Tratamento de Exceções (Erros).
try {
//..... Codificação para tratamento do Banco de dados.
}
catch( SQLException/Exception Objeto) {
System.out.println(e.getMessage());
// Tratamento em caso de Erros
}
Exemplo try{ String c_user="";
String c_senha="";String c_fonte=" jdbc:mysql://localhost/NomeBancodeDados ";
Connection con;Class.forName("com.mysql.jdbc.Driver");con=DriverManager.getConnection(c_fonte,c_user,c_senha);System.out.println("Conexao MS-ACCESS O.K.");Statement st=con.createStatement();ResultSet rs=st.executeQuery("SELECT * FROM TABELA1");while(rs.next()){
String w_nome=rs.getString("nome");System.out.println("Nome: " + w_nome.trim() ); }
con.close(); } catch( Exception e) { System.out.prinln(“Erro na Abertura do banco de
Dados”); }