Você está na página 1de 5

APOSTILA DE JAVA – JMENU E JTABLE

JMENU:

O objeto que serve de base é a Barra de Menu, adicionado diretamente ao


JFrame, e sobre ele vão todas os outros itens relacionados ao menu. Depois,
para cada menu temos o objeto Menu, e dentro do de cada Menu temos os
Itens de Menu.

JFORMATTEDTEXTFIELD

São campos parecidos com a JTextField - o usuário pode escrever dentro


normalmente. Só que agora o número de caracteres digitáveis é limitado, pode-se
limitar o tipo de caracter digitado, e pode-se fazer o campo já esperar com alguns
sinais prontos. É isso o que se usa nos campos onde uma pessoa deve digitar seu CPF e
a caixinha de texto já vem com os pontos e o traço. Para configurar o campo a
Propriedade FORMATTERFACTORY e selecionar o padrão de configuração para o
campo desejado.

# => Somente números.


U => Qualquer caractere. Todas as letras minúsculas são transformadas em maiúsculas.
L => Qualquer caractere. Todas as letras maiúsculas são transformadas em minúsculas.
A => Qualquer caractere ou digito
? => Qualquer caractere
H => Qualquer caractere hexadecimal (0-9, a-f ou A-F)

BANCO DE DADOS UTILIZANDO JTABLE:

CRIAR O BANCO DE DADOS NO POSTGRESQL: AulaJTABLE

NETBEANS:
Criar a interface do JFrame com base na tabela do Banco de Dados:

//Importações das bibliotecas


import java.sql.*;
import java.util.Vector;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;

//Declarações das variáveis do projeto


private String driver = "org.postgresql.Driver"; //Classe do driver JDBC
private String banco = "AulaJTABLE"; //Nome do Banco de Dados que irá utilizar
private String host = "localhost"; //Computador onde está o banco
private String str_conn = "jdbc:postgresql://localhost:5432/"+banco; //URL de conexão
private String usuario = "postgres"; //Usuário do banco
private String senha = "root"; //Senha de conexão

public static Connection con; //Controla a conexão com o Banco de Dados


private Statement stmt; //Controla statement para enviar o código em SQL
private ResultSet rs; //Recebe o resultado do código em SQL
public String sql; //Recebe o código em SQL

Para definir os nomes das colunas no JTable:

BOTÃO CONSULTAR:
try {
Class.forName(driver); //Carrega o driver

//Obtém a conexão com o banco


con = DriverManager.getConnection(str_conn, usuario, senha);

//Cria um statement para podermos mandar um SQL para o banco


stmt = con.createStatement();

//Codigo em SQL para filtrar os dados da tabela CLIENTE


sql = "SELECT * FROM cliente ORDER BY codigo";

//Executa a instrução em SQL


rs = stmt.executeQuery(sql);

//Verifica se a tabela CLIENTE possui algum registro


if (rs == null) {
return;
}

//Variavel que irá receber os valores cadastrados na tabela CLIENTE


ResultSetMetaData rsmd;
rsmd = rs.getMetaData();

//Construtor que irá controlar o numero de colunas


Vector vetColuna = new Vector();
for (int i = 0; i < rsmd.getColumnCount(); i++) {
vetColuna.add(rsmd.getColumnLabel(i + 1));
}

//Construtor que irá controlar o numero de linhas


Vector vetLinhas = new Vector();

//Verifica se possui um proximo registro


while (rs.next()) {
Vector vetLinha = new Vector();
for (int i = 0; i < rsmd.getColumnCount(); i++) {
vetLinha.add(rs.getObject(i + 1));
}

//Insere as linhas na tabela do formulario


vetLinhas.add(vetLinha);

//Desenha a tabela com os valores de linha e coluna referentes a tabela CLIENTE


jTable1.setModel(new DefaultTableModel(vetLinhas, vetColuna));
}

//Tratamento de erros
} catch (ClassNotFoundException ex) {
System.out.println("Não foi possível carregar o driver.");
ex.printStackTrace();
} catch (SQLException ex) {
System.out.println("Problema com o SQL");
ex.printStackTrace();
}
BOTÃO EXCLUIR:

int i = 0;
try {
Class.forName(driver); //Carrega o driver

//Obtém a conexão com o banco


con = DriverManager.getConnection(str_conn, usuario, senha);

//Cria um statement para podermos mandar um SQL para o banco


stmt = con.createStatement();

//Variavel que ira receber o numero da linha selecionada no JTABLE


String valorSelecionado = jTable1.getValueAt(jTable1.getSelectedRow(),
jTable1.getSelectedColumn()).toString();

//Tela de confirmação para excluir o registro selecionado


int status = JOptionPane.showConfirmDialog(null, "Deseja excluir o item " + valorSelecionado +
"?", "Atenção", JOptionPane.YES_NO_OPTION);

//Verifica se o botão clicado na tela de confirmação foi o YES


if (status == JOptionPane.YES_OPTION) {

//Codigo em SQL para excluir o registro selecionado


sql = "DELETE FROM cliente WHERE codigo = " + valorSelecionado;

//Executa a instrução em SQL


stmt.executeUpdate(sql);

//Mostra uma tela de informação que o registro foi excluído do banco


JOptionPane.showMessageDialog(null, "Excluído com sucesso");
}

//Tratamento de erros
} catch (ClassNotFoundException ex) {
System.out.println("Não foi possível carregar o driver.");
ex.printStackTrace();
} catch (SQLException ex) {
System.out.println("Problema com o SQL");
ex.printStackTrace();
}

BOTÃO ATUALIZAR:

try {

//Codigo em SQL para atualizar os registros atraves dos valores existentes nos TextFields
sql = "update cliente set nome = '" + jTextField2.getText() + "',idade='" + jTextField3.getText()
+ "' where codigo = " + jTextField1.getText();

//Executa a atualização dos dados no banco de dados


stmt = con.createStatement();
stmt.executeUpdate(sql);
//Encerra a conexão com o banco de dados
stmt.close();
con.close();

//Tratamento de erro
} catch (SQLException ex) {
System.err.println("SQLException: " + ex.getMessage());
}

//Tela de confirmação dos dados atualizados


JOptionPane.showMessageDialog(null, "Registro atualizado com sucesso!");

BOTÃO INSERIR:

try {
Class.forName(driver); //Carrega o driver

//Obtém a conexão com o banco


con = DriverManager.getConnection(str_conn, usuario, senha);

//Cria um statement para podermos mandar um SQL para o banco


stmt = con.createStatement();

//Mandamos o SQL para o banco e obtemos um ResultSet


String sql = "INSERT INTO cliente (codigo,nome,idade) VALUES (' "
+ jTextField1.getText() + " ',' "
+ jTextField2.getText() + " ',' "
+ jTextField3.getText() + " ') ";

stmt.executeUpdate(sql);

JOptionPane.showMessageDialog(null, "Gravação realizado com sucesso!");

//Tratamento de erros
}catch (ClassNotFoundException ex) {
System.out.println("Não foi possível carregar o driver.");
ex.printStackTrace();
} catch (SQLException ex) {
System.out.println("Problema com o SQL");
ex.printStackTrace();
}

Você também pode gostar