JavaOOP(IIIBim)-VB [Modo de Compatibilidade]IIIBim)-VB.pdf · Usando o pacote (awt - Abstract...

Preview:

Citation preview

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”); }