Você está na página 1de 33

Tutorial elaborado pelo professor Jos Gonalo dos Santos

Contato: jose.goncalo.santos@gmail.com

Criando um aplicao simples com JAVA e MySQL usando NetBeans Parte II

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

Introduo
Para acompanhar este tutorial recomendvel que voc tenha seguido todas as etapas da primeira parte deste que se encontra em: http://www.pusivus.com.br na seo 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 aplicao. Para realizar este trabalho, este tutorial est dividido em duas etapas, a primeira a criao da interface para comunicao com o usurio e segunda, a criao do arquivo .jar. Cada etapa foi dividida em passos, siga-os.

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

Feito isso, voc ver o ambiente sofreu mudanas, novas componentes aparecem agora, conforme pode ser observado na figura abaixo. Como se pode ver, temos um formulrio pronto para ser modelado de acordo com o nosso desejo e necessidade. Nesse formulrio voc pode colocar qualquer um dos componentes (boto, rtulo, painel,..) da paleta que se encontra direita acima. Para fazer isso, basta clicar, arrastar e soltar o componente dentro do formulrio. Voc tambm tem as propriedades dos componentes, que podem ser alterados, em foco (selecionado), direita abaixo da paleta de componentes. Alm disso, voc pode alternar entre o modo desenho e o mdo cdigo-fonte, bastando, para isso, selecionar uma das opes. Click em cdigo-fonte, voc ver que j existe algum cdigo gerado automaticamente. Copyright 2011 www.pusivus.com.br, Todos os Direitos Reservados.

2 J que temos o nosso formulrio, vamos colocar os componentes necessrios para manuteno do nosso banco de dados, ou seja, colocaremos os componentes de entrada de dados, botes, e uma tabela para exibir dados de pesquisa. Ento, vamos comear a desenhar o nossa tela. a) Procure o componente Panel na paleta de componente, click nele e o arraste para o formulrio, redimensione-o de maneira que como uma faixa superior no formulrio. Mude a propriedade background para a cor branca. Para isso, localize a propriedade e click no boto ao lado. O seu formulrio deve se parecer com a figura abaixo.

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

b) Coloque um componente Rtulo (Label) dentro do componente Panel que voc acaba de colocar no formulrio e mude as propriedades text (escreva Cadastramento de veculos) e font (a fonte e o tamanho desejado e click em OK). Voc pode acessar as propriedades dos componentes clicando com o boto 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 rtulos no segundo Panel e mude a propridade text deles para ficar como mostra a figura abaixo.

Para o quarto rtulo, precisamos mudar seu nome interno, ou seja, o nome ao qual iremos nos referir a ele. neste rtulo 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 boto direito do mouse sobre o rtulo Mensagem e click na opo Alterar nome da varivel; 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 varivel (da mesma forma como foi feito com o rtulo Mensagem) de cada um da seguinte forma: o primeiro dever se chamar txtPlaca, o segundo, txtCor e o terceiro, txtDescricao.

Alterne para o cdigo-fonte (click em cdigo-fonte) e voc ver que os seus componentes j esto com os nomes que voc colocou, como pode visto na figura abaixo. No possvel alterar qualquer valor na parte cinza do cdigo.

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 botes, muda a propriedade text deles, conforme mostra a figura abaixo. Mude tambm o nome interno (boto direito sobre ele, escolher Mudar nome da varivel, 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 formulrio, 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 ns no serve porque precisamos de 3 colunas e o nmero de linha no 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 boto direito do mouse sobre a tabela e selecione Contedo da tabela, com isso, a caixa de dilogo da figura abaixo ir aparecer.

g2) Deixe marcada a opo Especificado pelo usurio e selecione a aba Colunas. Selecione a ltima linha e click em excluir, mude os ttulos das trs linhas restantes, mude o tipo e desmarque os checkbox (conforme figura abaixo) porque no queremos que ela seja editvel e nem redimensionda pelo usurio, 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 trs colunas e zero linha.

g4) Agora s precisamos mudar o nome da tabela, boto direito -> Alterar nome da varivel, coloque tblConsulta. A sua tela dever estar parecida com a figura abaixo. Para que ela no seja redimensionvel, 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 botes. Boto fechar Vamos comear com o boto fechar, porm, as explicaes iniciais servem para todos os outros. Para colocar funcionalidade em um componente boto temos vrias formas, mas por questo de simplicidade colocaremos a funcionalidade quando o usurio clicar com o boto esquerdo do mouse sobre ele. Para fazer isso, siga o procedimento abaixo. Selecione a paleta evento (com o foco no boto Fechar, ou seja, d um click simples no d duplo click), abaixo de propriedade, busque pelo evento mouseClicked, selecione a primeira opo da lista e d um click. Com isso, voc ser direcionado para dentro do evento poder colocar seu cdigo.

O evento gerado apresentado abaixo, o cdigo em vermelho dever ser colocado por voc. Observe que o cdigo 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.

Boto Limpar Crie um evento para o click do mouse, como foi feito para o boto anterior. Na seo de importao, 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 dinmica na tabela, quando clicarmos no boto limpar, iremos eliminar todas as linhas da tabela. O cdigo em vermelho dever ser acrescentado. As quatro primeiras linhas esto atribuindo valor vazio para as caixas de texto, bem assim o rtulo de mensagem. A linha seguinte atribui o modelo do nosso objeto JTable para um objeto do tipo DefaultTableModel para que possamos utilizar os mtodos de remoo de linhas e outros necessrios manipulao da tabela. Cabe observar que tbm um objeto da classe DefaultTableModel por isso para que ele tenha acesso ao mtodo getModel do nosso objeto JTable, foi necessrio 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 no 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); } }

Boto Inserir Para que nosso cdigo colocado no mtodo do boto inserir funcione, necessrio fazer a importao do pacote sql do java. Para isso, acrescente o cdigo import java.sql.*; na seo de importao (logo abaixo de package).

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

Vemos, a seguir, o mtodo de insero onde muitos dos cdigos voc j est familiarizado com eles. Dessa forma, s sero explicadas as novidades. O cdigo em vermelho dever ser acrescentado. Na primeira linha estamos abrindo uma conexo. Na segunda estamos criando um objeto da classe CarroBean. Na terceira estamos criando um objeto da classe CarroDAO. Nas trs linhas seguintes estamos atribuindo os valores aos atributos da classe CarroBean. Para pegar o valor que se encontram nos componentes, usamos o mtodo getText e para atribuir valor para esses, usamos o mtodo 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 penltima linha que estamos fazendo a incluso e exibindo a mensagem de retorno, na lblMensagem, ao mesmo tempo. Na ltima linha estamos fechando a conexo. 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); }

Boto pesquisar Para o boto pesquisar, precisamos importar o pacote til do java. Acrescente o cdigo import java.util.*; na seo de importao (logo abaixo de package). O cdigo em vermelho dever ser acrescentado.

Na primeira linha estamos abrindo uma conexo.

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 mtodo listarTodos. Na quarta linha estamos executando o mtodo 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 clula da tabela, de acordo com o campo da tabela fsica. Observe que o i corresponde ao nmero de linhas que retornaram da pesquisa e 0,1 e 2 so 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 usurio possa escolher o registro que deseja alterar ou excluir. Para isso precisamos capturar a linha que ele selecionou. Para isso, vamos criar um mtodo para o click do mouse na tabela, o procedimento o mesmo feito para os botes. O cdigo em vermelho dever ser acrescentado. Na primeira linha estamos capturando a linha que o usurio clicou. Na segunda, terceira e quarta linha estamos pegando o valor de cada clula da tabela, que corresponde a cada atributo da classe carro. O cast necessrio porque o objeto JTable retorna um objeto e ns 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 formulrio. O resultado mostrado na figura a seguir. Como pode ser observado, os dados da linha selecionada pelo usurio so transferidos para os campos do formulrio. 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); }

Boto Alterar O boto alterar semelhante ao boto incluir, por isso cabe as mesmas explicaes. O cdigo 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); }

Boto excluir O boto excluir semelhante ao boto incluir, por isso cabe as mesmas explicaes, exceto no uso do JOptionPane que ser explicado a seguir. O cdigo em vermelho dever ser acrescentado. Precisamos acrescentar a importao do JOptionPane na seo de import. import javax.swing.JOptionPane; A linha Object[] opcoes = { "Sim", "No" }; cria um vetor de objetos para trocarmos o yes e no pelo sim e no. O objetivo perguntar ao usurio se ele deseja realmente excluir o registro. O mtodo showOptionDialog do JOptionPane sobrecarregado de forma que possua vrias implementaes e uma delas a que estamos usando neste exemplo, que contm 7 argumentos. O primeiro nome da classe pai, ou seja, para qual janela eu pretendo associar o a caixa de dilogo, 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", "No" }; int i = JOptionPane.showOptionDialog(null, "Deseja excluir esse veculo: "+txtPlaca.getText()+"?", "Excluso", 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 cdigo completo apresentado no fim do tutorial.

Criando um pacote de distribuio At agora ns executamos nosso aplicativo dentro do ambiente do netbeans, mas se quisermos distribuir esse aplicativo, como faremos? Bom, para isso, podemos criar um pacote executvel (.jar) e execut-lo em qualquer mquina que tenha a JVM. Mas, lembre-se de que necessrio levar o banco de dados tambm. Para criar um pacote de distribuio siga os passos apresentados abaixo. 1 - Exclua a classe Main.java (boto direito sobre selecione a opo Excluir). Ao aparecer a janela abaixo, click em excluso segura e click em Refatorar.

2 - Troque o nome da classe FrmCarro para Main (boto 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 aplicao (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 construdo. 5 Abra a pasta em que voc criou o seu projeto e procure o diretrio 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.

Consideraes finais Assim ns encerramos a segunda parte do tutorial. Creio que isto serve como ponta-p inicial para desenvolvimento de aplicao java para desktop. Na parte III do tutorial iniciaremos o desenvolvimento de aplicaes para web.

Cdigo Completo O cdigo 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 veculos"); 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("Descrio"); 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", "Descrio" } ) { 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", "No" }; int i = JOptionPane.showOptionDialog(null, "Deseja excluir esse veculo: "+txtPlaca.getText()+"?", "Excluso", 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

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

Você também pode gostar