A Plic Simples Java Mysql Parte i i

33
Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados. Tutorial elaborado pelo professor José Gonçalo dos Santos Contato: [email protected] Criando um aplicação simples com JAVA e MySQL usando NetBeans – Parte II

Transcript of A Plic Simples Java Mysql Parte i i

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

Tutorial elaborado pelo professor

José Gonçalo dos Santos

Contato: [email protected]

Criando um aplicação simples com JAVA e MySQL usando NetBeans – Parte II

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

Introdução

Para acompanhar este tutorial é recomendável que você tenha seguido todas as etapas da primeira parte deste que se encontra em: http://www.pusivus.com.br na seção de tutoriais.

Supondo que você tenha acompanhado a primeira parte deste tutorial, você já deve ter um banco de dados (MySQL) chamado estacionamento com uma tabela chamada carro e as seguintes classes: CarroBean, CarroDAO e Conexao. Com isso, só precisamos agora criar a interface e empacotar a nossa aplicação. Para realizar este trabalho, este tutorial está dividido em duas etapas, a primeira é a criação da interface para comunicação com o usuário e segunda, a criação do arquivo .jar. Cada etapa foi dividida em passos, siga-os.

1 – Crie um formulário dentro do pacote criado na parte I deste tutorial. Para isso, click com o botão direito sobre o pacote e escolha novo->formulário JFrame, em seguida preencha o nome do formulário conforme figura abaixo e click em finalizar.

Feito isso, você verá o ambiente sofreu mudanças, novas componentes aparecem agora, conforme pode ser observado na figura abaixo. Como se pode ver, temos um formulário pronto para ser modelado de acordo com o nosso desejo e necessidade.

Nesse formulário você pode colocar qualquer um dos componentes (botão, rótulo, painel,..) da paleta que se encontra à direita acima. Para fazer isso, basta clicar, arrastar e soltar o componente dentro do formulário. Você também tem as propriedades dos componentes, que podem ser alterados, em foco (selecionado), à direita abaixo da paleta de componentes. Além disso, você pode alternar entre o modo desenho e o módo código-fonte, bastando, para isso, selecionar uma das opções. Click em “código-fonte”, você verá que já existe algum código gerado automaticamente.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

2 – Já que temos o nosso formulário, vamos colocar os componentes necessários para manutenção do nosso banco de dados, ou seja, colocaremos os componentes de entrada de dados, botões, e uma tabela para exibir dados de pesquisa.

Então, vamos começar a desenhar o nossa tela.

a) Procure o componente Panel na paleta de componente, click nele e o arraste para o formulário, redimensione-o de maneira que como uma faixa superior no formulário. Mude a propriedade “background” para a cor branca. Para isso, localize a propriedade

e click no botão ao lado. O seu formulário deve se parecer com a figura abaixo.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

b) Coloque um componente Rótulo (Label) dentro do componente Panel que você acaba de colocar no formulário e mude as propriedades text (escreva Cadastramento de

veículos) e font (a fonte e o tamanho desejado e click em OK). Você pode acessar as propriedades dos componentes clicando com o botão direito sobre eles e selecionando propriedades, uma janela como a figura abaixo aparecerá. Para mudar a cor da fonte, acesse a propriedade “foreground”.

Até aqui, a sua tela deverá estar como a da figura abaixo.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

c) Coloque outro Panel, logo abaixo do anterior e mude a propriedade “background” para uma cor diferente da que foi colocada no primeiro, como mostra a figura abaixo.

d) Coloque quatro rótulos no segundo Panel e mude a propridade text deles para ficar como mostra a figura abaixo.

Para o quarto rótulo, precisamos mudar seu nome interno, ou seja, o nome ao qual iremos nos referir a ele. É neste rótulo que colocaremos as mensagens devolvidas pela classe CarroDAO, por isso precisamos dar um nome que nos seja familiar (em vez JLabel5). Para isso, click com o botão direito do mouse sobre o rótulo “Mensagem” e click na opção “Alterar nome da variável”; coloque o nome lblMensagem, conforme figura abaixo, e click em OK. Procure colocar os nomes dos componentes com 3 letras iniciais que lembrem do que se trata.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

e) Coloque 3 componentes “Caixa de texto” e mude as propriedades text de todos para vazio, ou seja, limpe o texto que estiver lá (conforme figura abaixo). Altere o nome da variável (da mesma forma como foi feito com o rótulo “Mensagem”) de cada um da seguinte forma: o primeiro deverá se chamar txtPlaca, o segundo, txtCor e o terceiro, txtDescricao.

Alterne para o código-fonte (click em “código-fonte”) e você verá que os seus componentes já estão com os nomes que você colocou, como pode visto na figura abaixo. Não é possível alterar qualquer valor na parte cinza do código.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

f) Coloque um novo Panel abaixo do segundo, mude seu “background” para a mesma cor do segundo e coloque 6 botões, muda a propriedade text deles, conforme mostra a figura abaixo. Mude também o nome interno (botão direito sobre ele, escolher “Mudar nome da variável”, colocar o nome e clicar em OK) deles para btnIncluir, btnAlterar, btnExcluir, btnPesquisar, btnLimpar e btnFechar, conforme a ordem que aparece na figura.

g) Vamos colocar agora uma tabela para exibir os dados quando clicarmos em “Pesquisar”. Para isso, coloque um componente Panel, mude a cor do seu background para a mesma do último colocado no formulário, coloque um componente Tabela nesse Panel, conforme mostra figura abaixo.

Como se pode observar, a tabela já vem pré-definida com 4 linhas e 4 colunas, mas isso para nós não serve porque precisamos de 3 colunas e o número de linha não sabemos, pois

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

dependerá da quantidade de linhas que a consulta retornará. Por isso, vamos configurar a tabela para ficar do jeito que queremos, ou seja, com 3 colunas, nenhuma linha (acrescentaremos as linhas dinamicamente). Para isso siga o procedimento abaixo.

g1) click com o botão direito do mouse sobre a tabela e selecione “Conteúdo da tabela”, com isso, a caixa de diálogo da figura abaixo irá aparecer.

g2) Deixe marcada a opção “Especificado pelo usuário” e selecione a aba “Colunas”. Selecione a última linha e click em excluir, mude os títulos das três linhas restantes, mude o tipo e desmarque os checkbox (conforme figura abaixo) porque não queremos que ela seja editável e nem redimensionda pelo usuário, pois nosso objetivo é usá-la apenas para exibir dados.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

g3) Selecione a aba “Linhas”, selecione todas as linhas, conforme figura abaixo, e click em excluir, com isso, temos uma tabela com três colunas e zero linha.

g4) Agora só precisamos mudar o nome da tabela, botão direito -> Alterar nome da variável, coloque tblConsulta. A sua tela deverá estar parecida com a figura abaixo. Para que ela não

seja redimensionável, e estrague seu desenho, desmarque a propriedade “resizeble”.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

Agora que temos no tela pronta, podemos dar funcionalidade aos botões.

Botão fechar

Vamos começar com o botão fechar, porém, as explicações iniciais servem para todos os outros. Para colocar funcionalidade em um componente “botão” temos várias formas, mas por questão de simplicidade colocaremos a funcionalidade quando o usuário clicar com o botão esquerdo do mouse sobre ele. Para fazer isso, siga o procedimento abaixo.

Selecione a paleta evento (com o foco no botão “Fechar”, ou seja, dê um click simples – não dê duplo click), abaixo de propriedade, busque pelo evento mouseClicked, selecione a primeira opção da lista e dê um click. Com isso, você será direcionado para dentro do evento poderá colocar seu código.

O evento gerado é apresentado abaixo, o código em vermelho deverá ser colocado por você. Observe que o código que precisamos acrescentar para fechar a janela se resume em apenas uma linha.

private void btnFecharMouseClicked(java.awt.event.MouseEvent evt) {

System.exit(0);

}

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

Botão Limpar

Crie um evento para o click do mouse, como foi feito para o botão anterior.

Na seção de importação, coloque o seguinte import : import javax.swing.table.*;

Vamos usar a classe DefaultTableModel desse pacote para redimensionarmos a nossa tabela. Como iremos inserir linhas de forma dinâmica na tabela, quando clicarmos no botão limpar, iremos eliminar todas as linhas da tabela.

O código em vermelho deverá ser acrescentado.

As quatro primeiras linhas estão atribuindo valor vazio para as caixas de texto, bem assim o rótulo de mensagem.

A linha seguinte atribui o modelo do nosso objeto JTable para um objeto do tipo DefaultTableModel para que possamos utilizar os métodos de remoção de linhas e outros necessários manipulação da tabela. Cabe observar que tbm é um objeto da classe DefaultTableModel por isso para que ele tenha acesso ao método getModel do nosso objeto JTable, foi necessário criar um cast ((DefaultTableModel)tblConsulta.getModel()).

O comando for percorre a tabela desde a última linha (tbm.getRowCount()-1) até a primeira (zero) e remove todas elas. Cabe dizer que essa não é a única maneira de se fazer, é uma das maneiras de se fazer.

private void LimparMouseClicked(java.awt.event.MouseEvent evt) {

txtPlaca.setText("");

txtCor.setText("");

txtDescricao.setText("");

lblMensagem.setText("");

DefaultTableModel tbm =

(DefaultTableModel)tblConsulta.getModel();

for(int i = tbm.getRowCount()-1; i >= 0; i--){

tbm.removeRow(i);

}

}

Botão Inserir

Para que nosso código colocado no método do botão inserir funcione, é necessário fazer a importação do pacote sql do java. Para isso, acrescente o código import java.sql.*; na seção de importação (logo abaixo de package).

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

Vemos, a seguir, o método de inserção onde muitos dos códigos você já está familiarizado com eles. Dessa forma, só serão explicadas as novidades. O código em vermelho deverá ser acrescentado.

Na primeira linha estamos abrindo uma conexão.

Na segunda estamos criando um objeto da classe CarroBean.

Na terceira estamos criando um objeto da classe CarroDAO.

Nas três linhas seguintes estamos atribuindo os valores aos atributos da classe CarroBean. Para pegar o valor que se encontram nos componentes, usamos o método getText e para atribuir valor para esses, usamos o método setText. Esses componentes só trabalham com objetos String, por isso quando tivermos campos do Integer, precisaremos converter os valores – de String para Integer, usa-se Integer.parseInt(String a converter) e de Integer para String, usa-se valorInteger.toString().

Na penúltima linha é que estamos fazendo a inclusão e exibindo a mensagem de retorno, na lblMensagem, ao mesmo tempo.

Na última linha estamos fechando a conexão.

private void btnIncluirMouseClicked(java.awt.event.MouseEvent evt) {

Connection con = Conexao.abrirConexao();

CarroBean cb = new CarroBean();

CarroDAO cd = new CarroDAO(con);

cb.setPlaca(txtPlaca.getText());

cb.setCor(txtCor.getText());

cb.setDescricao(txtDescricao.getText());

lblMensagem.setText(cd.inserir(cb));

Conexao.fecharConexao(con);

}

Botão pesquisar

Para o botão pesquisar, precisamos importar o pacote útil do java. Acrescente o código import java.util.*; na seção de importação (logo abaixo de package). O código em vermelho deverá ser acrescentado.

Na primeira linha estamos abrindo uma conexão.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

Na segunda estamos criando um objeto da classe CarroDAO.

Na terceira linha criamos uma lista de carros para receber o retorno do método listarTodos.

Na quarta linha estamos executando o método listarTodos e atribuindo o seu retorno à lista de carros.

Na quinta linha criamos um objeto do tipo DefaultTableModel.

O primeiro for serve para zerar as linhas da tabela para acrescentarmos o resultado da nossa pesquisa.

O segundo for é para pegarmos os objetos da lista de carros para colocarmos na tabela.

A primeira linha dentro do segundo for adiciona uma linha à tabela e os comandos seguintes adicionam os dados em cada célula da tabela, de acordo com o campo da tabela física. Observe que o i corresponde ao número de linhas que retornaram da pesquisa e 0,1 e 2 são as colunas da tabela.

private void btnPesquisarMouseClicked(java.awt.event.MouseEvent evt) {

Connection con = Conexao.abrirConexao();

CarroDAO cd = new CarroDAO(con);

List<CarroBean> listaCarro = new ArrayList<CarroBean>();

listaCarro = cd.listarTodos();

DefaultTableModel tbm =

(DefaultTableModel)tblConsulta.getModel();

for(int i = tbm.getRowCount()-1; i >= 0; i--){

tbm.removeRow(i);

}

int i = 0;

for(CarroBean cb : listaCarro){

tbm.addRow(new String[1]);

tblConsulta.setValueAt(cb.getPlaca(), i, 0);

tblConsulta.setValueAt(cb.getCor(), i, 1);

tblConsulta.setValueAt(cb.getDescricao(), i, 2);

i++;

}

Conexao.fecharConexao(con);

}

A figura a seguir mostra o resultado da pesquisa.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

Feita a pesquisa queremos que o usuário possa escolher o registro que deseja alterar ou excluir. Para isso precisamos capturar a linha que ele selecionou. Para isso, vamos criar um método para o click do mouse na tabela, o procedimento é o mesmo feito para os botões. O código em vermelho deverá ser acrescentado.

Na primeira linha estamos capturando a linha que o usuário clicou.

Na segunda, terceira e quarta linha estamos pegando o valor de cada célula da tabela, que corresponde a cada atributo da classe carro. O cast é necessário porque o objeto JTable retorna um objeto e nós precisamos de uma String para passar para os campos de texto.

Na quarta, quinta e sexta linha estamos atribuindo o valor para os campos de texto do formulário.

O resultado é mostrado na figura a seguir. Como pode ser observado, os dados da linha selecionada pelo usuário são transferidos para os campos do formulário.

private void tblConsultaMouseClicked(java.awt.event.MouseEvent evt) {

Integer linha = tblConsulta.getSelectedRow();

String placa = (String)tblConsulta.getValueAt(linha, 0);

String cor = (String)tblConsulta.getValueAt(linha, 1);

String descricao = (String)tblConsulta.getValueAt(linha, 2);

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

txtPlaca.setText(placa);

txtCor.setText(cor);

txtDescricao.setText(descricao);

}

Botão Alterar

O botão alterar é semelhante ao botão incluir, por isso cabe as mesmas explicações. O código em vermelho deverá ser acrescentado.

private void btnAlterarMouseClicked(java.awt.event.MouseEvent evt) {

Connection con = Conexao.abrirConexao();

CarroBean cb = new CarroBean();

CarroDAO cd = new CarroDAO(con);

cb.setPlaca(txtPlaca.getText());

cb.setCor(txtCor.getText());

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

cb.setDescricao(txtDescricao.getText());

lblMensagem.setText(cd.alterar(cb));

Conexao.fecharConexao(con);

}

Botão excluir

O botão excluir é semelhante ao botão incluir, por isso cabe as mesmas explicações, exceto no uso do JOptionPane que será explicado a seguir. O código em vermelho deverá ser acrescentado.

Precisamos acrescentar a importação do JOptionPane na seção de import.

import javax.swing.JOptionPane;

A linha Object[] opcoes = { "Sim", "Não" }; cria um vetor de objetos para trocarmos o yes e no pelo sim e não. O objetivo é perguntar ao usuário se ele deseja realmente excluir o registro.

O método showOptionDialog do JOptionPane é sobrecarregado de forma que possua várias implementações e uma delas é a que estamos usando neste exemplo, que contém 7 argumentos.

O primeiro é nome da classe pai, ou seja, para qual janela eu pretendo associar o a caixa de diálogo, se deixarmos nulo, ele exibe a caixa no meio da tela. Os demais atributos podem ser visto quando ele estiver funcionando.

private void btnExcluirMouseClicked(java.awt.event.MouseEvent evt) {

Connection con = Conexao.abrirConexao();

CarroBean cb = new CarroBean();

CarroDAO cd = new CarroDAO(con);

cb.setPlaca(txtPlaca.getText());

Object[] opcoes = { "Sim", "Não" };

int i = JOptionPane.showOptionDialog(null,

"Deseja excluir esse veículo:

"+txtPlaca.getText()+"?", "Exclusão",

JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE, null,

opcoes, opcoes[0]);

if (i == JOptionPane.YES_OPTION) {

lblMensagem.setText(cd.excluir(cb));

}

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

Conexao.fecharConexao(con);

}

O código completo é apresentado no fim do tutorial.

Criando um pacote de distribuição

Até agora nós executamos nosso aplicativo dentro do ambiente do netbeans, mas se quisermos distribuir esse aplicativo, como faremos? Bom, para isso, podemos criar um pacote executável (.jar) e executá-lo em qualquer máquina que tenha a JVM. Mas, lembre-se de que é necessário levar o banco de dados também. Para criar um pacote de distribuição siga os passos apresentados abaixo.

1 - Exclua a classe Main.java (botão direito sobre selecione a opção “Excluir”). Ao aparecer a janela abaixo, click em exclusão segura e click em Refatorar.

2 - Troque o nome da classe FrmCarro para Main (botão direito sobre ela escolha refatorar->renomear). Preencha os campos conforme figura abaixo e click em refatorar.

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

3 - Teste a aplicação (F6 – executar projeto principal). Se estiver funcionando perfeitamente, siga em frente.

4 – Selecione o projeto (Estacionamento) e no menu principal escolha Executar->Limpar e Construir Projeto Principal ou Shift+F11. Espere o processo ser construído.

5 – Abra a pasta em que você criou o seu projeto e procure o diretório dist. Você deverá ter as pastas mostradas na figura abaixo. Dentro da pasta lib está o conector do MySQL.

6 – Dê duplo click no arquivo Estacionamento.jar e você verá que o seu aplicativo funciona como funcionava no ambiente do netbeans.

Considerações finais

Assim nós encerramos a segunda parte do tutorial. Creio que isto serve como ponta-pé inicial para desenvolvimento de aplicação java para desktop. Na parte III do tutorial iniciaremos o desenvolvimento de aplicações para web.

Código Completo

O código completo é colocado a seguir.

package psv;

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

import javax.swing.table.*;

import java.sql.*;

import java.util.*;

import javax.swing.JOptionPane;

public class FrmCarro extends javax.swing.JFrame {

/** Creates new form FrmCarro */

public FrmCarro() {

initComponents();

}

@SuppressWarnings("unchecked")

// <editor-fold defaultstate="collapsed" desc="Generated Code">

private void initComponents() {

jPanel1 = new javax.swing.JPanel();

jLabel1 = new javax.swing.JLabel();

jPanel2 = new javax.swing.JPanel();

jLabel2 = new javax.swing.JLabel();

txtPlaca = new javax.swing.JTextField();

jLabel3 = new javax.swing.JLabel();

txtCor = new javax.swing.JTextField();

jLabel4 = new javax.swing.JLabel();

txtDescricao = new javax.swing.JTextField();

lblMensagem = new javax.swing.JLabel();

jPanel3 = new javax.swing.JPanel();

btnIncluir = new javax.swing.JButton();

btnAlterar = new javax.swing.JButton();

btnExcluir = new javax.swing.JButton();

btnPesquisar = new javax.swing.JButton();

Limpar = new javax.swing.JButton();

btnFechar = new javax.swing.JButton();

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

jPanel4 = new javax.swing.JPanel();

jScrollPane1 = new javax.swing.JScrollPane();

tblConsulta = new javax.swing.JTable();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

setResizable(false);

jPanel1.setBackground(new java.awt.Color(255, 255, 255));

jLabel1.setFont(new java.awt.Font("Arial Black", 0, 20));

jLabel1.setForeground(new java.awt.Color(204, 102, 0));

jLabel1.setText("Cadastramento de veículos");

javax.swing.GroupLayout jPanel1Layout = new

javax.swing.GroupLayout(jPanel1);

jPanel1.setLayout(jPanel1Layout);

jPanel1Layout.setHorizontalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addGap(86, 86, 86)

.addComponent(jLabel1)

.addContainerGap(114, Short.MAX_VALUE))

);

jPanel1Layout.setVerticalGroup(

jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addGroup(jPanel1Layout.createSequentialGroup()

.addComponent(jLabel1)

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

jPanel2.setBackground(new java.awt.Color(204, 204, 204));

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

jLabel2.setText("Placa");

jLabel3.setText("Cor");

jLabel4.setText("Descrição");

lblMensagem.setFont(new java.awt.Font("Arial Black", 0, 14));

lblMensagem.setForeground(new java.awt.Color(255, 102, 102));

jPanel3.setBackground(new java.awt.Color(204, 204, 204));

btnIncluir.setText("Incluir");

btnIncluir.addMouseListener(new java.awt.event.MouseAdapter()

{

public void mouseClicked(java.awt.event.MouseEvent evt) {

btnIncluirMouseClicked(evt);

}

});

btnAlterar.setText("Alterar");

btnAlterar.addMouseListener(new java.awt.event.MouseAdapter()

{

public void mouseClicked(java.awt.event.MouseEvent evt) {

btnAlterarMouseClicked(evt);

}

});

btnExcluir.setText("Excluir");

btnExcluir.addMouseListener(new java.awt.event.MouseAdapter()

{

public void mouseClicked(java.awt.event.MouseEvent evt) {

btnExcluirMouseClicked(evt);

}

});

btnPesquisar.setText("Pesquisar");

btnPesquisar.addMouseListener(new

java.awt.event.MouseAdapter() {

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

public void mouseClicked(java.awt.event.MouseEvent evt) {

btnPesquisarMouseClicked(evt);

}

});

Limpar.setText("Limpar");

Limpar.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent evt) {

LimparMouseClicked(evt);

}

});

btnFechar.setText("Fechar");

btnFechar.addMouseListener(new java.awt.event.MouseAdapter() {

public void mouseClicked(java.awt.event.MouseEvent evt) {

btnFecharMouseClicked(evt);

}

});

javax.swing.GroupLayout jPanel3Layout = new

javax.swing.GroupLayout(jPanel3);

jPanel3.setLayout(jPanel3Layout);

jPanel3Layout.setHorizontalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addComponent(btnIncluir)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(btnAlterar)

.addGap(18, 18, 18)

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

.addComponent(btnExcluir)

.addGap(18, 18, 18)

.addComponent(btnPesquisar)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

16, Short.MAX_VALUE)

.addComponent(Limpar)

.addGap(18, 18, 18)

.addComponent(btnFechar)

.addContainerGap())

);

jPanel3Layout.setVerticalGroup(

jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addGroup(jPanel3Layout.createSequentialGroup()

.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Al

ignment.BASELINE)

.addComponent(btnIncluir)

.addComponent(btnAlterar)

.addComponent(btnExcluir)

.addComponent(btnPesquisar)

.addComponent(btnFechar)

.addComponent(Limpar))

.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE,

Short.MAX_VALUE))

);

jPanel4.setBackground(new java.awt.Color(204, 204, 204));

tblConsulta.setModel(new javax.swing.table.DefaultTableModel(

new Object [][] {

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

},

new String [] {

"Placa", "Cor", "Descrição"

}

) {

Class[] types = new Class [] {

java.lang.String.class, java.lang.String.class,

java.lang.String.class

};

boolean[] canEdit = new boolean [] {

false, false, false

};

public Class getColumnClass(int columnIndex) {

return types [columnIndex];

}

public boolean isCellEditable(int rowIndex, int

columnIndex) {

return canEdit [columnIndex];

}

});

tblConsulta.addMouseListener(new java.awt.event.MouseAdapter()

{

public void mouseClicked(java.awt.event.MouseEvent evt) {

tblConsultaMouseClicked(evt);

}

});

jScrollPane1.setViewportView(tblConsulta);

tblConsulta.getColumnModel().getColumn(0).setResizable(false);

tblConsulta.getColumnModel().getColumn(1).setResizable(false);

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

tblConsulta.getColumnModel().getColumn(2).setResizable(false);

javax.swing.GroupLayout jPanel4Layout = new

javax.swing.GroupLayout(jPanel4);

jPanel4.setLayout(jPanel4Layout);

jPanel4Layout.setHorizontalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addComponent(jScrollPane1,

javax.swing.GroupLayout.DEFAULT_SIZE, 496, Short.MAX_VALUE)

);

jPanel4Layout.setVerticalGroup(

jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addGroup(jPanel4Layout.createSequentialGroup()

.addContainerGap()

.addComponent(jScrollPane1,

javax.swing.GroupLayout.PREFERRED_SIZE, 236,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addContainerGap(62, Short.MAX_VALUE))

);

javax.swing.GroupLayout jPanel2Layout = new

javax.swing.GroupLayout(jPanel2);

jPanel2.setLayout(jPanel2Layout);

jPanel2Layout.setHorizontalGroup(

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al

ignment.LEADING)

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

.addGroup(jPanel2Layout.createSequentialGroup()

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al

ignment.LEADING)

.addComponent(lblMensagem,

javax.swing.GroupLayout.DEFAULT_SIZE, 476, Short.MAX_VALUE)

.addGroup(jPanel2Layout.createSequentialGroup()

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al

ignment.LEADING)

.addComponent(jLabel4)

.addComponent(jLabel3)

.addComponent(jLabel2))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al

ignment.LEADING)

.addComponent(txtPlaca,

javax.swing.GroupLayout.PREFERRED_SIZE, 123,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(txtCor,

javax.swing.GroupLayout.PREFERRED_SIZE, 205,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addComponent(txtDescricao,

javax.swing.GroupLayout.DEFAULT_SIZE, 426, Short.MAX_VALUE))))

.addContainerGap())

.addComponent(jPanel3,

javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))

.addComponent(jPanel4,

javax.swing.GroupLayout.Alignment.TRAILING,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

);

jPanel2Layout.setVerticalGroup(

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LE

ADING)

.addGroup(jPanel2Layout.createSequentialGroup()

.addContainerGap()

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al

ignment.BASELINE)

.addComponent(jLabel2)

.addComponent(txtPlaca,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al

ignment.BASELINE)

.addComponent(jLabel3)

.addComponent(txtCor,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addGap(17, 17, 17)

.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Al

ignment.BASELINE)

.addComponent(jLabel4)

.addComponent(txtDescricao,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE))

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(lblMensagem)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jPanel3,

javax.swing.GroupLayout.PREFERRED_SIZE,

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)

.addComponent(jPanel4,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addGap(162, 162, 162))

);

javax.swing.GroupLayout layout = new

javax.swing.GroupLayout(getContentPane());

getContentPane().setLayout(layout);

layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addComponent(jPanel1,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

.addComponent(jPanel2,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)

);

layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)

.addGroup(layout.createSequentialGroup()

.addComponent(jPanel1,

javax.swing.GroupLayout.PREFERRED_SIZE,

javax.swing.GroupLayout.DEFAULT_SIZE,

javax.swing.GroupLayout.PREFERRED_SIZE)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)

.addComponent(jPanel2,

javax.swing.GroupLayout.PREFERRED_SIZE, 405,

javax.swing.GroupLayout.PREFERRED_SIZE))

);

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

pack();

}// </editor-fold>

private void LimparMouseClicked(java.awt.event.MouseEvent evt) {

txtPlaca.setText("");

txtCor.setText("");

txtDescricao.setText("");

lblMensagem.setText("");

DefaultTableModel tbm =

(DefaultTableModel)tblConsulta.getModel();

for(int i = tbm.getRowCount()-1; i >= 0; i--){

tbm.removeRow(i);

}

}

private void btnFecharMouseClicked(java.awt.event.MouseEvent evt)

{

System.exit(0);

}

private void btnIncluirMouseClicked(java.awt.event.MouseEvent evt)

{

Connection con = Conexao.abrirConexao();

CarroBean cb = new CarroBean();

CarroDAO cd = new CarroDAO(con);

cb.setPlaca(txtPlaca.getText());

cb.setCor(txtCor.getText());

cb.setDescricao(txtDescricao.getText());

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

lblMensagem.setText(cd.inserir(cb));

Conexao.fecharConexao(con);

}

private void btnPesquisarMouseClicked(java.awt.event.MouseEvent

evt) {

Connection con = Conexao.abrirConexao();

CarroDAO cd = new CarroDAO(con);

List<CarroBean> listaCarro = new ArrayList<CarroBean>();

listaCarro = cd.listarTodos();

DefaultTableModel tbm =

(DefaultTableModel)tblConsulta.getModel();

for(int i = tbm.getRowCount()-1; i >= 0; i--){

tbm.removeRow(i);

}

int i = 0;

for(CarroBean cb : listaCarro){

tbm.addRow(new String[1]);

tblConsulta.setValueAt(cb.getPlaca(), i, 0);

tblConsulta.setValueAt(cb.getCor(), i, 1);

tblConsulta.setValueAt(cb.getDescricao(), i, 2);

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

i++;

}

Conexao.fecharConexao(con);

}

private void tblConsultaMouseClicked(java.awt.event.MouseEvent

evt) {

Integer linha = tblConsulta.getSelectedRow();

String placa = (String)tblConsulta.getValueAt(linha, 0);

String cor = (String)tblConsulta.getValueAt(linha, 1);

String descricao = (String)tblConsulta.getValueAt(linha, 2);

txtPlaca.setText(placa);

txtCor.setText(cor);

txtDescricao.setText(descricao);

}

private void btnAlterarMouseClicked(java.awt.event.MouseEvent evt)

{

Connection con = Conexao.abrirConexao();

CarroBean cb = new CarroBean();

CarroDAO cd = new CarroDAO(con);

cb.setPlaca(txtPlaca.getText());

cb.setCor(txtCor.getText());

cb.setDescricao(txtDescricao.getText());

lblMensagem.setText(cd.alterar(cb));

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

Conexao.fecharConexao(con);

}

private void btnExcluirMouseClicked(java.awt.event.MouseEvent evt)

{

Connection con = Conexao.abrirConexao();

CarroBean cb = new CarroBean();

CarroDAO cd = new CarroDAO(con);

cb.setPlaca(txtPlaca.getText());

Object[] opcoes = { "Sim", "Não" };

int i = JOptionPane.showOptionDialog(null,

"Deseja excluir esse veículo:

"+txtPlaca.getText()+"?", "Exclusão",

JOptionPane.YES_NO_OPTION,

JOptionPane.QUESTION_MESSAGE, null,

opcoes, opcoes[0]);

if (i == JOptionPane.YES_OPTION) {

lblMensagem.setText(cd.excluir(cb));

}

Conexao.fecharConexao(con);

}

public static void main(String args[]) {

java.awt.EventQueue.invokeLater(new Runnable() {

Copyright 2011 © www.pusivus.com.br, Todos os Direitos Reservados.

public void run() {

new FrmCarro().setVisible(true);

}

});

}

// Variables declaration - do not modify

private javax.swing.JButton Limpar;

private javax.swing.JButton btnAlterar;

private javax.swing.JButton btnExcluir;

private javax.swing.JButton btnFechar;

private javax.swing.JButton btnIncluir;

private javax.swing.JButton btnPesquisar;

private javax.swing.JLabel jLabel1;

private javax.swing.JLabel jLabel2;

private javax.swing.JLabel jLabel3;

private javax.swing.JLabel jLabel4;

private javax.swing.JPanel jPanel1;

private javax.swing.JPanel jPanel2;

private javax.swing.JPanel jPanel3;

private javax.swing.JPanel jPanel4;

private javax.swing.JScrollPane jScrollPane1;

private javax.swing.JLabel lblMensagem;

private javax.swing.JTable tblConsulta;

private javax.swing.JTextField txtCor;

private javax.swing.JTextField txtDescricao;

private javax.swing.JTextField txtPlaca;

// End of variables declaration

}