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 [Link].*;
import [Link];
import [Link];
import [Link];
//Declarações das variáveis do projeto
private String driver = "[Link]"; //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 {
[Link](driver); //Carrega o driver
//Obtém a conexão com o banco
con = [Link](str_conn, usuario, senha);
//Cria um statement para podermos mandar um SQL para o banco
stmt = [Link]();
//Codigo em SQL para filtrar os dados da tabela CLIENTE
sql = "SELECT * FROM cliente ORDER BY codigo";
//Executa a instrução em SQL
rs = [Link](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 = [Link]();
//Construtor que irá controlar o numero de colunas
Vector vetColuna = new Vector();
for (int i = 0; i < [Link](); i++) {
[Link]([Link](i + 1));
}
//Construtor que irá controlar o numero de linhas
Vector vetLinhas = new Vector();
//Verifica se possui um proximo registro
while ([Link]()) {
Vector vetLinha = new Vector();
for (int i = 0; i < [Link](); i++) {
[Link]([Link](i + 1));
}
//Insere as linhas na tabela do formulario
[Link](vetLinha);
//Desenha a tabela com os valores de linha e coluna referentes a tabela CLIENTE
[Link](new DefaultTableModel(vetLinhas, vetColuna));
}
//Tratamento de erros
} catch (ClassNotFoundException ex) {
[Link]("Não foi possível carregar o driver.");
[Link]();
} catch (SQLException ex) {
[Link]("Problema com o SQL");
[Link]();
}
BOTÃO EXCLUIR:
int i = 0;
try {
[Link](driver); //Carrega o driver
//Obtém a conexão com o banco
con = [Link](str_conn, usuario, senha);
//Cria um statement para podermos mandar um SQL para o banco
stmt = [Link]();
//Variavel que ira receber o numero da linha selecionada no JTABLE
String valorSelecionado = [Link]([Link](),
[Link]()).toString();
//Tela de confirmação para excluir o registro selecionado
int status = [Link](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
[Link](sql);
//Mostra uma tela de informação que o registro foi excluído do banco
[Link](null, "Excluído com sucesso");
}
//Tratamento de erros
} catch (ClassNotFoundException ex) {
[Link]("Não foi possível carregar o driver.");
[Link]();
} catch (SQLException ex) {
[Link]("Problema com o SQL");
[Link]();
}
BOTÃO ATUALIZAR:
try {
//Codigo em SQL para atualizar os registros atraves dos valores existentes nos TextFields
sql = "update cliente set nome = '" + [Link]() + "',idade='" + [Link]()
+ "' where codigo = " + [Link]();
//Executa a atualização dos dados no banco de dados
stmt = [Link]();
[Link](sql);
//Encerra a conexão com o banco de dados
[Link]();
[Link]();
//Tratamento de erro
} catch (SQLException ex) {
[Link]("SQLException: " + [Link]());
}
//Tela de confirmação dos dados atualizados
[Link](null, "Registro atualizado com sucesso!");
BOTÃO INSERIR:
try {
[Link](driver); //Carrega o driver
//Obtém a conexão com o banco
con = [Link](str_conn, usuario, senha);
//Cria um statement para podermos mandar um SQL para o banco
stmt = [Link]();
//Mandamos o SQL para o banco e obtemos um ResultSet
String sql = "INSERT INTO cliente (codigo,nome,idade) VALUES (' "
+ [Link]() + " ',' "
+ [Link]() + " ',' "
+ [Link]() + " ') ";
[Link](sql);
[Link](null, "Gravação realizado com sucesso!");
//Tratamento de erros
}catch (ClassNotFoundException ex) {
[Link]("Não foi possível carregar o driver.");
[Link]();
} catch (SQLException ex) {
[Link]("Problema com o SQL");
[Link]();
}