Buscar

Unidade V - Tela de pesquisa e Alteração com Componente JCheckBox

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 34 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Técnicas de 
Programação II
MATERIAL TEÓRICO
UNIDADE 5
Autoria:
Prof. Me. Hugo Fernandes 
Revisão Textual:
Prof.ª Esp. Kelciane da Rocha Campos
Tela de pesquisa e Alteração 
com Componente JCheckBox
Não se esqueça 
de se alimentar 
e de se manter 
hidratado.
Conserve seu 
material e local 
de estudos sempre 
organizados.
Procure manter contato 
com seus colegas e tutores 
para trocar ideias! Isso 
amplia a aprendizagem.
Seja original! 
Nunca plagie 
trabalhos.
Determine 
um horário fixo 
para estudar.
Aproveite as 
indicações 
de Material 
Complementar.
Mantenha o foco! 
Evite se distrair com 
as redes sociais.
Orientações de estudo
Para que o conteúdo desta Disciplina seja bem aproveitado e haja maior aplicabilidade na 
sua formação acadêmica e atuação profissional, siga algumas recomendações básicas:
Assim:
Organize seus estudos de maneira que passem a fazer parte 
da sua rotina. Por exemplo, você poderá determinar um dia e 
horário fixos como seu “momento do estudo”;
Procure se alimentar e se hidratar quando for estudar; lembre-se de que 
uma alimentação saudável pode proporcionar melhor aproveitamento do estudo;
No material de cada Unidade, há leituras indicadas e, entre elas, artigos científicos, livros, 
vídeos e sites para aprofundar os conhecimentos adquiridos ao longo da Unidade. Além disso, 
você também encontrará sugestões de conteúdo extra no item Material Complementar, que 
ampliarão sua interpretação e auxiliarão no pleno entendimento dos temas abordados;
Após o contato com o conteúdo proposto, participe dos debates mediados em fóruns de 
discussão, pois irão auxiliar a verificar o quanto você absorveu de conhecimento, além de 
propiciar o contato com seus colegas e tutores, o que se apresenta como rico espaço de troca 
de ideias e de aprendizagem.
Tela de pesquisa e Alteração 
UNIDADE 5
Tela de Pesquisa 
e Alteração com 
Componente 
JCheckBox
Um JCheckBox é utilizado quando mais de uma 
opção precisa ser verificada ou quando precisamos, 
de uma maneira fácil, indicar a ativação ou desati-
vação de uma propriedade em uma tela de cadastro 
ou configuração, por exemplo.
Iremos criar uma nova tabela em nosso banco de 
dados: PreferenciaContato. Essa tabela irá conter o 
nome, o número de telefone, e-mail e preferência de 
contato do cliente. Na tela, irá pesquisar, por meio de 
uma busca por nome, o cliente e exibirá o resultado 
em um JTable, permitirá ao usuário navegar entre 
os registros encontrados e, por fim, possibilitará ao 
usuário de nossa tela de pesquisa alterar os dados do 
cliente. A tela será algo parecido com a figura 1.
Figura 1 − Protótipo da Tela de Pesquisa
Fonte: Autor
Objetivos
• Desenvolver uma nova tela de 
pesquisa ao banco de dados;
• Explorar principalmente a 
utilização do componente 
JCheckBox em conjunto com o 
componente JTable para criarmos 
uma aplicação que facilite a 
navegação entre registros do 
banco de dados, desse modo 
também facilitando a alteração 
de dados.
6
EXPLORE
Crie protótipos com Balsamiq. Disponível em: https://goo.gl/Q5npZS
Como nos exemplos anteriores, para que nossa aplicação possa se conectar 
corretamente ao banco de dados, o serviço do MySQL deve estar ATIVO. Para ati-
vá-lo, basta acessar a pasta de onde o programa Uniform Ser�er foi extraído e cli-
car no arquivo UniController.
Ative o serviço MySQL clicando no botão Start MySQL. Se o serviço for inicializado 
com sucesso, o quadro ao lado do botão ficará verde.
Figura 2 − Ativando o Serviço de Banco de Dados
Fonte: Autor
Em seguida, minimize o programa, isso fará com que ele vá para a bandeja do 
Windows. Com o serviço MySQL ativo em nosso computador, podemos começar o 
nosso passo a passo para desenvolver nossa tela de pesquisa.
Passo 1: Criando um Novo Form 
e Adicionando os Componentes 
Visuais da Tela de Pesquisa
Abra o NetBeans e acesse o projeto Java criado na unidade de estudo anterior 
(APPSelect). Clique no nome do projeto com o botão direito do mouse e em seguida 
selecione a opção Novo/Form JFrame. Na tela seguinte, digite no campo “Nome da 
Classe”: PreferenciaContato. Em seguida, clique em Finalizar.
7
Tela de pesquisa e Alteração 
UNIDADE 5
Figura 3 – Inserindo um Novo Form ao Projeto
Fonte: Autor
Em seguida, clique em qualquer lugar vazio do Frame com o botão direito do 
mouse e selecione a opção “Propriedades”.
Na aba Código, selecione a opção Gerar Código de redimensionamento no campo 
Política de Tamanho de Form e marque a opção do campo “Gerar Código de 
redimensionamento”. Feito isso, clique no botão Fechar.
De volta à tela de design, clique com o botão direito do mouse em cima do Frame 
e selecione a opção “Definir Layout/Design Livre”.
EXPLORE
Teclas de atalho e modelos de código: Disponível em: https://goo.gl/vujUn4
 
Figura 4 − Configurando o Layout do Form
Fonte: Autor
8
Arraste para dentro do Form um componente de texto (JtextField), um compo-
nente de botão (JButton) e um JTable.
Na sequência, altere a propriedade de texto do componente de texto. Para isso, 
clique com o botão direito do mouse sobre o componente e selecione a opção “Edi-
tar texto” e apague o texto. Altere também a propriedade de texto do botão, para o 
botão digite “Pesquisar”. Em seguida, altere o nome de variável dos componentes 
conforme a tabela abaixo.
Quadro 1
Componente Nome da Variável Propriedade Texto
JTextField txtPesquisa Apagar texto padrão
JButton Não alterar Pesquisar
JTable tblPesquisa -
Nosso Form deve ficar parecido com a Figura 5.
Figura 5 − Configurando o Form
Fonte: Autor
Faremos agora as configurações do JTable. Para isso, clique com o botão direito 
do mouse sobre o JTable e selecione a opção “Conteúdo da tabela”. Em seguida, 
acesse a aba “Coluna”. Insira na propriedade “Contagem” o número 5, isso fará 
com que seja adicionada mais uma coluna. Renomeie o título de cada coluna para: 
Nome; Telefone; Email; EnvMail e EnvSMS.
9
Tela de pesquisa e Alteração 
UNIDADE 5
Figura 6 − Renomeando Colunas
Fonte: Autor
Feito isso, clique na aba “Linha”, selecione as linhas existentes e as exclua.
Figura 7 − Excluindo as Linhas do JTable
Fonte: Autor
Adicionaremos agora os campos que receberão os dados quando o usuário sele-
cionar algum registro no JTable. A partir desses campos, iremos criar um código para 
alterar o registro no banco de dados. Para isso, arraste para o Form, logo abaixo do 
JTable, 3 JTextField e 1 JButton. Nosso Form deve ficar parecido com a Figura 8.
10
Figura 8 − Configurando o Form
Fonte: Autor
Em seguida, arraste para o Form um componente JCheckBox (Caixa de Seleção). 
Faça isso 2 vezes.
Figura 9 − Componente JCheckBox
Fonte: Autor
Agora altere as propriedades de nome de variável e texto dos componentes con-
forme a tabela abaixo.
11
Tela de pesquisa e Alteração 
UNIDADE 5
Quadro 2
Componente Nome da Variável Propriedade Texto
JTextField txtNome Apagar texto padrão
JTextField txtTel Apagar texto padrão
JTextField txtEmail Apagar texto padrão
JCheckBox ckbEmail -
JCheckBox ckbSMS -
JButton Não alterar Alterar
Na Figura 10, podemos visualizar a disposição de cada componente, bem como 
seu nome de variável.
Figura 10 − Disposição de Componentes e Nomes de Variável
Fonte: Autor
Em seguida, arraste componentes JLabel e altere a propriedade de texto de cada 
componente, conforme podemos ver na Figura 11.
Figura 11 − Disposição de Componentes JLabel
Fonte: Autor
12
Passo 2: Escrevendo o Código
de Busca no Banco de Dados
Acesse a área do código-fonte e logo no início da classe, digite o seguinte código:
import javax.swing.*;
import java.sql.*;
import javax.swing.table.DefaultTableModel;
Figura 12
Fonte: Autor
Esse código importa as classes da javax.Swing, java.sql e do componente table.
Em seguida, logo abaixo da linha de código da construção da Classe Preferen-
ciaContato, escreva o seguinte código:
public ResultSet rs;
Connection conn;
Figura 13
Fonte: Autor
Estamos criando essas variáveis nesse ponto do código para que possamos, 
desse modo,utilizar e compartilhar o valor contido nessas variáveis em todo o 
código. Denominamos as variáveis criadas nesse ponto como variáveis globais.
13
Tela de pesquisa e Alteração 
UNIDADE 5
EXPLORE
Variável local e global: https://youtu.be/awaMjuA-hkU
Criaremos agora um método para criação da tabela PreferenciaContato. Esse mé-
todo será responsável pela criação e inserção de dados na tabela PreferenciaContato. 
Para isso, logo abaixo do método PreferenciaContato(), digite o seguinte código:
public void criaTabelaPreferenciaContato() {
 String SQLCreate = “CREATE TABLE `TBL_PreferenciaContato` (\n”
 + “Nome varchar(256), Telefone varchar(11),\n”
 + “Email varchar(256),EnvMail varchar(1),EnvSMS varchar(1))”;
 try {
 Class.forName(“com.mysql.jdbc.Driver”);
 Statement stmt;
 conn = DriverManager.getConnection(“jdbc:mysql://localhost/minhadb”,
 “root”, “root”);
 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
 ResultSet.CONCUR_UPDATABLE);
 stmt.executeUpdate(SQLCreate);
 stmt.executeUpdate(“insert into TBL_PreferenciaContato”
 + “ values (‘Hugo Fernandes’, ‘11912342356’,’hugo@msn.com’,”
 + “’S’,’N’)”);
 stmt.executeUpdate(“insert into TBL_PreferenciaContato”
 + “ values (‘Maria da Silva’, ‘11912342389’,’maria@msn.com’,”
 + “’N’,’N’)”);
 stmt.executeUpdate(“insert into TBL_PreferenciaContato”
 + “ values (‘Gilberto Gonçalves’, ‘11912342374’,’gil@msn.com’,”
 + “’S’,’S’)”);
 stmt.close();
 JOptionPane.showMessageDialog(null, “Tabela criada com sucesso!”);
 } catch (ClassNotFoundException e) {
 System.out.println(e);
 } catch (SQLException e) {
 System.out.println(e);
 }
}
14
Figura 14
Fonte: Autor
Analisando o Código
Linha 27 – cria a assinatura do nosso método void. Nessa linha indicamos o 
nome do método (criaTabelaPreferenciaContato) e definimos que o método não 
terá parâmetros de entrada.
Linha 29 – cria uma variável chamada SQLCreate, na qual atribuímos o co-
mando SQL para criação da tabela Cidades (TBL_PreferenciaContato).
Linha 33 – esse comando registra a Classe do Driver JDBC.
Linha 34 – cria uma variável do tipo Statement de nome stmt.
Linha 35 – atribui à variável do tipo Connection os parâmetros de endereço, 
usuário e a senha do banco de dados.
Linha 37 – inicializa a variável Statement, é por meio dessa variável que 
executaremos operações no banco de dados de atualização.
Linha 39 – executa a variável Statement, desse modo executando a instrução 
SQL para criação da tabela.
Linha 40 a 48 – executa a variável Statement tendo como parâmetro de 
execução instruções SQL de insert.
Linha 49 – encerra a variável Statement.
Linha 50 – exibe uma mensagem na tela.
Linhas 53 – caso ocorra alguma exceção, o sistema exibe o erro.
15
Tela de pesquisa e Alteração 
UNIDADE 5
Só é necessário invocar o método para criação da tabela uma vez, ou seja, quan-
do a tabela PreferenciaContato ainda não existir no banco de dados. Para que o 
sistema possa identificar esse cenário, devemos criar um método que verifica se a 
tabela PreferenciaContato existe no banco de dados, caso não exista o método de 
criação será invocado. Para isso, logo após o final do método criaTabelaPreferen-
ciaContato, digite o seguinte código:
public void testeTabela() {
 Statement stmt;
 try {
 Class.forName(“com.mysql.jdbc.Driver”);
 conn = DriverManager.getConnection(“jdbc:mysql://localhost/minhadb”,
 “root”, “root”);
 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
 ResultSet.CONCUR_READ_ONLY);
 try {
 stmt.executeQuery(“Select nome from TBL_PreferenciaContato”);
 } catch (SQLException e) {
 criaTabelaPreferenciaContato();
 }
 } catch (ClassNotFoundException e) {
 System.out.println(e);
 } catch (SQLException e) {
 System.out.println(e);
 }
}
Figura 15
Fonte: Autor
16
Analisando o código
Linha 60 – cria a assinatura do nosso método void. Nessa linha indicamos o 
nome do método (testeTabela) e definimos que o método não terá parâmetros 
de entrada.
Linha 62 – cria uma variável do tipo Statement de nome stmt.
Linha 64 – esse comando registra a Classe do Driver JDBC.
Linha 65 – atribui à variável do tipo Connection os parâmetros de endereço, 
usuário e a senha do banco de dados.
Linha 67 – inicializa a variável Statement, é por meio dessa variável que 
executaremos operações no banco de dados de atualização.
Linha 69 – abre um bloco “tr�”.
Linha 70 – executa a variável Statement e caso haja algum erro será executada 
a linha 72.
É importante observar que a linha 70 executa uma instrução SQL que seleciona 
dados da tabela PreferenciaContato, porém, caso a tabela ainda não exista no banco 
de dados, irá ocorrer um erro. É dessa maneira que nossa aplicação irá identificar 
se existe ou não a necessidade de se invocar o método para criação da tabela Pre-
ferenciaContato.
EXPLORE
Try Catch: https://youtu.be/7zfwZonK2IE
Agora devemos fazer com que nossa aplicação invoque o método de teste da ta-
bela PreferenciaContato toda vez que a aplicação for executada. Esse procedimento 
fará com que nossa aplicação verifique se existe ou não a tabela e caso a tabela não 
exista, a tabela será criada.
Para codificar esse evento, clique com o botão direito do mouse sobre uma 
parte vazia do Form, em seguida selecione a opção Propriedade. Na aba Eventos, 
localize a propriedade WindowOpened, clique na seta e em seguida clique na opção 
FormWindowOpened. Esse processo irá criar o método do evento WindowOpened.
17
Tela de pesquisa e Alteração 
UNIDADE 5
Figura 16 – Criando o método FormWindowOpened
Fonte: Autor
Figura 17 – Selecionando o Método FormWindowOpened
Fonte: Autor
18
Em seguida, acesse o código-fonte e digite o seguinte código:
testeTabela();
Figura 18
Fonte: Autor
Analisando esse código, temos na linha 277 a chamada do método testeTabela, 
onde testamos a existência da tabela PreferenciaContato.
Exibindo o Resultado na tela
Agora iremos criar o método responsável por exibir o resultado da pesquisa no 
banco de dados por meio do componente JTable. Digite o seguinte código:
public void pesquisa(String paramBusca) {
 String SQLpesqusa = "Select * from TBL_PreferenciaContato" + paramBusca;
 Statement stmt;
 try {
 Class.forName("com.mysql.jdbc.Driver");
 conn = DriverManager.getConnection("jdbc:mysql://localhost/minhadb",
 "root", "root");
 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
 ResultSet.CONCUR_READ_ONLY);
 rs = stmt.executeQuery(SQLpesqusa);
 DefaultTableModel model = (DefaultTableModel) tblPesquisa.getModel();
 model.setNumRows(0);
 String vEnvEmail = null;
 String vEnvSMS = null;
 while (rs.next()) {
 if (rs.getString("EnvMail").equals("S")) {
 vEnvEmail = "Sim";
 } else {
 vEnvEmail = "Não";
 }
 if (rs.getString("EnvSMS").equals("S")) {
 vEnvSMS = "Sim";
 } else {
 vEnvSMS = "Não";
19
Tela de pesquisa e Alteração 
UNIDADE 5
 }
 model.addRow(new Object[]{
 //retorna os dados da tabela do BD, cada campo e um coluna.
 rs.getString("Nome"),
 rs.getString("Telefone"),
 rs.getString("Email"),
 vEnvEmail,
 vEnvSMS
 });
 }
 rs.close();
 } catch (ClassNotFoundException e) {
 System.out.println(e);
 } catch (SQLException e) {
 System.out.println(e);
 }
 }
Figura 19
Fonte: Autor
20
Analisando o Código
Linha 83 – cria a assinatura do nosso método void. Nessa linha indicamos o 
nome do método (Pesquisa) e definimos que o método terá um (1) parâmetro do 
tipo String.
Linha 85 – cria uma variável chamada SQLpesquisa, na qual atribuímos o co-
mando SQL para busca de dados (select) e concatenamos com o valor que chega por 
meio do parâmetro do método.
Linha 86 – cria uma variável do tipo Statement de nomestmt.
Linha 88 – esse comando registra a Classe do Driver JDBC.
Linha 89 – atribui à variável do tipo Connection os parâmetros de endereço, 
usuário e a senha do banco de dados.
Linha 91 – inicializa a variável Statement, é por meio dessa variável que execu-
taremos operações no banco de dados de atualização.
Linha 93 – executa instrução SQL e atribui resultado a uma variável ResultSet.
Linha 94 – cria um objeto do tipo DefaultTableModel com o nome de model e 
na sequência atribui o valor da propriedade model contido no componente JTable.
Linha 95 – apaga todas as linhas do JTable.
Linha 96 – cria uma variável String com nome “vEnvEmail” e atribui o 
valor nulo.
Linha 97 – cria uma variável String com nome “vEnvSMS” e atribui o 
valor nulo.
Linha 99 – inicia a estrutura de repetição While. A quantidade de repetições 
do While será igual à quantidade de LINHAS resultante da busca no banco 
de dados.
Em nossa tabela PreferenciaContato, para indicar a preferência do contato pelo 
cliente, utilizamos os campos “EnvMail” e “EnvSMS”. Quando o cliente deseja que 
o contato seja enviado por e-mail, gravamos “S” no campo “EnvMail”, quando 
não, gravamos “N”. Essa mesma lógica é utilizada para contato via SMS. Sabendo 
disso, entre as linhas 101 e 110 nosso código irá verificar o que está gravado no 
banco de dados e de acordo com o valor gravado (“S” ou “N”), será adicionado um 
valor às variáveis que foram criadas nas linhas 96 e 97.
Linha 101 – nessa linha o código verifica se o valor do campo “EnvMail” é “S”. 
Caso o valor seja de fato “S”, a linha 102 será executada; caso contrário, a linha 
104 será executada. A mesma lógica é aplicada para o campo “EnvSMS” entre as 
linhas 106 e 110.
Linha 112 – cria uma nova linha no JTable atribuindo um array do tipo objeto 
cujo valores são descritos entre as linhas 114 e 118.
Linha 121 – encerra a variável ResultSet.
21
Tela de pesquisa e Alteração 
UNIDADE 5
Concluído esse método, iremos codificar o evento do botão Pesquisar. 
Esse evento irá invocar o método de pesquisa. Para isso, clique com o botão 
direito do mouse sobre o botão Pesquisar, passe o cursor do mouse sobre a opção 
Eventos, em seguida Action e, por fim, selecione actionPerformed.
Figura 20 – Criando o Evento ActionPerformed
 Fonte: Autor
No método criado, digite o seguinte código:
 String SQLText = “”;
 if (txtPesquisa.getText() != null) {
 SQLText = “ where upper(nome) like ‘”
 + txtPesquisa.getText() + “%’”;
 }
 pesquisa(SQLText);
Figura 21
Fonte: Autor
22
Analisando o código
Linha 267 – cria uma variável String e atribui o valor nulo.
Linha 228 – nessa estrutura de decisão é verificado se o JTextField possui 
algum valor digitado. Caso não seja vazio, a linha 269 será executada.
Linha 269 – atribui à variável String uma instrução SQL (where) concatenando 
com o valor que o usuário digitou no JTextField.
Linha 272 – invoca o método de pesquisa passando como parâmetro a variável 
String (SQLtext).
Passo 3: Escrevendo o Código 
para Alterar os Dados
Nossa aplicação deve ser capaz de identificar quais são os registros seleciona-
dos no JTable, em seguida permitir que esses registros sejam alterados no banco 
de dados. Para isso, primeiro iremos codificar o evento do clique do mouse sobre o 
JTable, por meio desse evento iremos “pegar” os dados selecionados pelo usuário.
Para isso, clique com o botão direito do mouse sobre o JTable, na propriedade 
Eventos, e selecione Mouse>mouseClicked.
Figura 22 – Criando Método MouseClicked
Fonte: Autor
23
Tela de pesquisa e Alteração 
UNIDADE 5
No método, digite o seguinte código:
 int linha = tblPesquisa.getSelectedRow();
 txtNome.setText(tblPesquisa.getValueAt(linha, 0).toString());
 txtTel.setText(tblPesquisa.getValueAt(linha, 1).toString());
 txtEmail.setText(tblPesquisa.getValueAt(linha, 2).toString());
 ckbEmail.setSelected(tblPesquisa.getValueAt(linha, 3).equals(“Sim”));
 ckbSMS.setSelected(tblPesquisa.getValueAt(linha, 4).equals(“Sim”));
Figura 23 
Fonte: Autor
Analisando o Código
Linha 282 – cria uma variável do tipo int e atribui o valor contido na proprie-
dade getSelectedRow() do JTable. Essa propriedade indica o índice da linha que o 
usuário está selecionando com o mouse.
Linha 283 a 285 – atribui ao componente de texto o valor contido na célula 
selecionada no JTable. Para isso, utilizamos a propriedade getValueAt passando 
como parâmetro primeiro o índice da linha e segundo o índice da coluna do JTable.
Linha 286 – o método “setSelected” recebe um parâmetro boolean. Quando o 
valor recebido é “true”, o componente JCheckBox é marcado; caso contrário, o com-
ponente é desmarcado. O método “equals” retorna um valor boolean; nesse caso, se 
o registro selecionando for igual a “SIM”, o método retorna “true”, caso contrário 
retornará “false”. A mesma lógica é utilizada na linha 287.
Por fim, iremos criar o código responsável por alterar os dados do registro se-
lecionado no JTable. Para isso, clique com o botão direito do mouse sobre o botão 
Pesquisar, passe o cursor do mouse sobre a opção Eventos, em seguida Action e, 
por fim, selecione actionPerformed.
24
Figura 24 – Criando o evento ActionPerformed do botão alterar
Fonte: Autor
No método criado, digite o seguinte código:
 Statement stmt;
 String vEnvEmail = null;
 if (ckbEmail.isSelected()) {
 vEnvEmail = "S";
 } else {
 vEnvEmail = "N";
 }
 String vEnvSMS = null;
 if (ckbSMS.isSelected()) {
 vEnvSMS = "S";
 } else {
 vEnvSMS = "N";
 }
 try {
 Class.forName("com.mysql.jdbc.Driver");
 conn = DriverManager.getConnection("jdbc:mysql://localhost/minhadb",
 "root", "root");
 stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
 ResultSet.CONCUR_UPDATABLE);
 String sql = "UPDATE TBL_PreferenciaContato SET telefone="
 + "'" + txtTel.getText() + "',"
 + "email='" + txtEmail.getText() + "',"
 + "EnvMail='" + vEnvEmail + "',"
25
Tela de pesquisa e Alteração 
UNIDADE 5
 + "EnvSMS='" + vEnvSMS + "'"
 + " where nome=" + "'" + txtNome.getText() + "'";
 JOptionPane.showMessageDialog(null, sql);
 int i = 0;
 i = stmt.executeUpdate(sql);
 stmt.close();
 if (i > 0) {
 JOptionPane.showMessageDialog(null, "Registro alterado com sucesso!");
 jButton1ActionPerformed(evt);
 }
 } catch (ClassNotFoundException e) {
 System.out.println(e);
 } catch (SQLException e) {
 System.out.println(e);
 }
Figura 25
Fonte: Autor
26
Analisando o Código
Linha 292 – cria uma variável do tipo Statement de nome stmt.
Linha 294 – cria uma variável do tipo string com o nome vEnvEmail e atribui 
a ela o valor nulo.
Linha 295 – se o componente JCheckBox Email estiver marcado, a linha 296 
será executada; caso contrário, a linha 298 será executada. O valor contido nessa 
variável será utilizado para alterar o valor do campo EnvEmail na tabela TBL_Pre-
ferenciaContato. A mesma lógica é utilizada para o campo EnvSMS entre as linhas 
301 e 306.
Linha 309 – esse comando registra a Classe do Driver JDBC.
Linha 310 – atribui à variável do tipo Connection os parâmetros de endereço, 
usuário e a senha do banco de dados.
Linha 312 – inicializa a variável Statement, é por meio dessa variável que 
executaremos operações no banco de dados de atualização.
Linha 314 – cria a instrução SQL de Insert.
Linha 320 – para fins didáticos, exibimos o conteúdo da variável string (SQL) 
em um JOptionPane.
Linha 322 – executa instrução SQL e atribui resultado a uma variável int.
Linha 325 – se i for maior do que zero, significa que a instrução SQL foi 
executada corretamente, assim é exibida uma mensagem de sucesso.
Linhas 330 e 332 – caso ocorra alguma exceção, o sistema exibe o erro.
Passo 4: Testando a Aplicação
Para testar nossa aplicação, devemos configurar a classe principal de nosso 
projetoJava. Ou seja, a classe que será executada em primeiro lugar ao executar 
o projeto na IDE Netbeans. Para isso, clique com o botão direito do mouse sobre o 
nome do projeto e selecione a opção Propriedades.
27
Tela de pesquisa e Alteração 
UNIDADE 5
Figura 26 – Acessando as Propriedades do Projeto Java
Fonte: Autor
Na tela de propriedades, selecione a categoria Executar. No campo 
“Classe principal”, clique no botão Procurar. Em seguida, selecione a classe 
PreferenciaContato.
Figura 27 – Propriedades do Projeto Java
Fonte: Autor
28
Por fim, clique no menu Executar/Criar Projeto ou F11. Em seguida, pressione 
F6 ou clique no menu Executar/ Executar Projeto.
Figura 28 – Testando a aplicação
Fonte: Autor
Figura 29 – Testando a Aplicação
Fonte: Autor
29
Tela de pesquisa e Alteração 
UNIDADE 5
Figura 30 – Testando a Aplicação
Fonte: Autor
Figura 31 – Testando a aplicação
Fonte: Autor
Com isso concluímos os estudos desta unidade.
Até breve!
30
Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:
 Sites
Terminal de Informação
Entendendo os Principais Componentes de um JFrame.
https://goo.gl/JRDFcs
 Vídeos
Tecnoplay TV
Tutorial Java - Como usar a caixa de seleção jCheckBox.
https://youtu.be/a2oebeo119A
JPM Software
Aula Java 87 - Programa Interface Gráfica com Usuário JCheckBox
https://youtu.be/wvFl6MxA6Zc
JTable con CheckBox
https://youtu.be/_LywyuL8y3Y
31
Tela de pesquisa e Alteração 
UNIDADE 5
Referências
GONÇALVES, Edson. Dominando NetBeans. Ciência Moderna, 2006.
HEFFELFINGER, David R. Java EE 7 Development with NetBeans 8. Packt Publishing 
Ltd, 2015.
NETBEANS IDE. Disponível em: <http:// netbeans. org>. Acesso em: 20 set. 2018.
32

Mais conteúdos dessa disciplina