Galera fiz a rotina de gravar e criar a tabela, só que não to conseguindo assim que clicar no botão gravar ele inserir a linha automatico no jtable, no botao excluir consigo ele some automatico. segue o codigo pra alguem tentar ajudar
private void btSalvarActionPerformed(java.awt.event.ActionEvent evt) {
if (txtMaquina.getText().isEmpty()) {
JOptionPane.showMessageDialog(null, "Preencha os campos corretamente");
} else {
try {
Class.forName("org.postgresql.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/falhas?user=postgres&password=mysenha");
String sqlinsert = "INSERT INTO tbl_pc(codPc, nomePc, setorPc, ipPc,"
+ "teamPc, senhaTeamPc, perfilPc, memoriaPc, hdPc,"
+ "processadorp, marcaPc, modeloPc, portasPc) VALUES ('"
+ txtMaquina.getText().toUpperCase() + "','"
+ txtNomeMaquina.getText().toUpperCase() + "','"
+ cbSetor.getSelectedItem() + "','"
+ txtIp.getText().toUpperCase() + "','"
+ txtTeamView.getText().toUpperCase() + "','"
+ txtSenha.getText().toUpperCase() + "','"
+ cbPerfil.getSelectedItem() + "','"
+ txtMemoria.getText().toUpperCase() + "','"
+ txtHd.getText().toUpperCase() + "','"
+ txtProcessador.getText().toUpperCase() + "','"
+ txtMarca.getText().toUpperCase() + "','"
+ txtModelo.getText().toUpperCase() + "','"
+ txtPortas.getText().toUpperCase() + "')";
conn.createStatement().executeUpdate(sqlinsert);
//tentei colocar aqui e nao deu certo
// tabela.setModel(modelo);
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Erro!!! Dados não gravados. Motivo:\nCÓDIGO JÁ EXISTENTE " + e);
}
}
//ai coloquei aqui no final do codigo
tabela.setModel(modelo);
}
e agora segue o codigo que monta minha tabela
public boolean isCellEditable(int rowIndex, int colIndex) {
//Se a coluna for menor que zero ele deixa editar.
if (colIndex < 0) {
return true;
} else {
return false;
}
}
};
//Definindo a seleção de apenas uma linha no Jtable
tabela.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// Cria duas colunas
modelo.addColumn("Cód. PC");
modelo.addColumn("Nome");
modelo.addColumn("Setor");
modelo.addColumn("I.P.");
modelo.addColumn("Team View");
modelo.addColumn("Senha T.V.");
modelo.addColumn("Perfil");
modelo.addColumn("Memória");
modelo.addColumn("HD");
modelo.addColumn("Processador");
modelo.addColumn("Marca");
modelo.addColumn("Modelo");
modelo.addColumn("Portas");
// exibe os dados da tabela
try {
Class.forName("org.postgresql.Driver").newInstance();
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/falhas?user=postgres&password=mysenha");
// procedimentos para obter os dados de uma tabela
Statement stmt = conn.createStatement();
String query = "SELECT * FROM tbl_pc";
ResultSet rs = stmt.executeQuery(query);
//estou lendo o resultset com todos os campos da tabela no banco
while (rs.next()) {
String codPc = rs.getString("codPc");
String nomePc = rs.getString("nomePc");
String setorPc = rs.getString("setorPc");
String ipPc = rs.getString("ipPc");
String teamPc = rs.getString("teamPc");
String senhaTeamPc = rs.getString("senhaTeamPc");
String perfilPc = rs.getString("perfilPc");
String memoriaPc = rs.getString("memoriaPc");
String hdPc = rs.getString("hdPc");
String processadorPc = rs.getString("processadorP");
String marcaPc = rs.getString("marcaPc");
String modeloPc = rs.getString("modeloPc");
String portasPc = rs.getString("portasPc");
//Adicionando as linhas com as variaveis criadas acima
modelo.addRow(new Object[]{codPc, nomePc, setorPc, ipPc, teamPc, senhaTeamPc, perfilPc, memoriaPc, hdPc, processadorPc, marcaPc, modeloPc, portasPc});
}
// fim procedimento para obter os dados
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "SQLException: " + ex.getMessage());
JOptionPane.showMessageDialog(null, "SQLState: " + ex.getSQLState());
JOptionPane.showMessageDialog(null, "VendorError: " + ex.getErrorCode());
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Problemas ao tentar conectar com o banco de dados");
}
// fim postgres
//criando a tabela e dando o tamanho dela
tabela.setPreferredScrollableViewportSize(new Dimension(600, 200));
//a variavel p..é o JPanel que eu arrastei la no projeto, ai simplesmente eu dei o layout e joguei tudo dentro
p.setLayout(new FlowLayout());
JScrollPane scrollPane = new JScrollPane(tabela);
p.add(scrollPane);
tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
scrollPane.setHorizontalScrollBar(new JScrollBar(0));
tabela.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
tabela.getColumnModel().getColumn(0).setPreferredWidth(200);
tabela.getColumnModel().getColumn(0).setResizable(false);
}
alguém da uma luz, vou colcoar aqui o codigo que eu uso pra excluir do banco e da tabela ao mesmo tempo
aqui ta funfando
private void btExcluirActionPerformed(java.awt.event.ActionEvent evt) {
if (tabela.getSelectedRow() != -1) {
int linha = tabela.getSelectedRow();
try {
Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/falhas?user=postgres&password=mysenha");
Statement stm = (Statement) conn.createStatement();
String sql = null;
String nome = "Deletar o computador com o código: " + tabela.getValueAt(linha, 0).toString() + " ?";
int opcao_escolhida = JOptionPane.showConfirmDialog(null, nome, "Exclusão ", JOptionPane.YES_NO_OPTION);
if (opcao_escolhida == JOptionPane.YES_OPTION) {
sql = "select * from tbl_pc Where codpc = " + (tabela.getValueAt(linha, 0));
int conseguiu_excluir = stm.executeUpdate("DELETE FROM tbl_pc WHERE codpc='" + (tabela.getValueAt(linha, 0).toString()) + "'");
if (conseguiu_excluir == 1) {
modelo.removeRow(linha);
tabela.setModel(modelo);
JOptionPane.showMessageDialog(null, "Registro excluido com sucesso!!!");
}
}
} catch (SQLException e) {
JOptionPane.showMessageDialog(null, "Erro a tentar excluir o registro..." + e);
} catch (ClassNotFoundException e) {
}
} else {
JOptionPane.showMessageDialog(null, "Selecione um nome para excluir");
}
}