Tenho um jTable que fica em jTabbedPane que por sua vez está dentro de jLayeredPane e por fim em um jFrame “principal”, só a organização da tela principal do meu programa, a partir desse jFrame “principal” eu chamo um outro jFrame “cadastro de contatos” que contém uns campos onde realizo cadastros, o banco funciona bem, escreve e apaga normal. Para carregar os dados do banco no jTable uso uma função chamada fillTableContact(), quando chamo essa função no jFrame “principal” funciona bem, mas quando chamo do jFrame “cadastro de contatos” ela executa normal mas não atualiza o jTable do jFrame “principal”. vejam o código abaixo:
jFrame “principal”:
[code]package agenda;
import classes.bridge2db;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableModel;
/**
*
-
@author Diego
*/
public class mainWindows extends javax.swing.JFrame {private int tabIndex;
bridge2db conInit2;/** Creates new form mainWindows */
public mainWindows() {
initComponents();conInit2 = new bridge2db(); //FAZ O PROGRAMA ABRIR NO MEIO DA TELA setLocationRelativeTo(null); //ESCONDE O CALEDÁRIO, AGENGA E LEMBRETES NA INICIALIZAÇÃO jCalendar1.setVisible(false);//CALENDÁRIO jTabbedPane1.setVisible(false);//AGENDA //DEFINE O TEMA PADRÃO DA INTERFACE (ATUAL NIMBUS) try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); SwingUtilities.updateComponentTreeUI(this); } catch (Exception erronotema) { JOptionPane.showMessageDialog(rootPane, erronotema); }
}
private void jLabel3MouseClicked(java.awt.event.MouseEvent evt) {
jLabel2.setVisible(false);
jTabbedPane1.setVisible(false);
jCalendar1.setVisible(true);
}private void jLabel5MouseClicked(java.awt.event.MouseEvent evt) {
jLabel2.setVisible(false);
jTabbedPane1.setVisible(true);
jCalendar1.setVisible(false);
}private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
jPopupMenu2.show(jButton3, 0, -62);
}private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
jPopupMenu1.show(jButton2, 0, -62);
}private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {
adContato frameContato = new adContato();
frameContato.setVisible(true);
}private void jTabbedPane1MouseClicked(java.awt.event.MouseEvent evt) {
tabIndex = jTabbedPane1.getSelectedIndex();
if (tabIndex == 1) {
fillTableContact();
}
}private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {
conInit2.conecta();
try {
conInit2.statement.executeUpdate(“DELETE FROM contatos WHERE nome=’” + jTable1.getValueAt(jTable1.getSelectedRow(), 0) + “’”);
JOptionPane.showMessageDialog(rootPane, “Contato excluído!”);
} catch (SQLException ex) {
JOptionPane.showMessageDialog(rootPane, “Não foi possível excluir. Tente novamente.”);
}
conInit2.desconecta();
fillTableContact();
}public void fillTableContact() {
//JOptionPane.showMessageDialog(rootPane, “cliquei na aba contatos”);
conInit2.conecta();
conInit2.executeSQL(“SELECT * FROM contatos ORDER BY id”);
DefaultTableModel modelo = (DefaultTableModel) jTable1.getModel();
modelo.setNumRows(0);
try {
while (conInit2.resultset.next()) {
modelo.addRow(new Object[]{conInit2.resultset.getString(“nome”), conInit2.resultset.getString(“telresidencial”), conInit2.resultset.getString(“telmovel”), conInit2.resultset.getString(“email”)});
}
conInit2.resultset.first();
} catch (SQLException erroTabela) {
JOptionPane.showMessageDialog(rootPane, “Erro ao preencher tabela: \n” + erroTabela);
}
conInit2.desconecta();
}[/code]
jFrame “cadastro de contatos”:
[code]package agenda;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import java.sql.SQLException;
import classes.bridge2db;
/**
*
-
@author Diego
*/
public class adContato extends javax.swing.JFrame {bridge2db conInit;
mainWindows classImport;/** Creates new form adContato */
public adContato() {
initComponents();//ESTABLECE CONEXÃO COM BD conInit = new bridge2db(); classImport = new mainWindows(); //FAZ O PROGRAMA ABRIR NO MEIO DA TELA setLocationRelativeTo(null); //DEFINE O TEMA PADRÃO DA INTERFACE (ATUAL NIMBUS) try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); SwingUtilities.updateComponentTreeUI(this); } catch (Exception erronotema) { JOptionPane.showMessageDialog(rootPane, erronotema); }
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
jFormattedTextField1.setText("");
jFormattedTextField2.setText("");
jFormattedTextField3.setText("");
jFormattedTextField4.setText("");
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField9.setText("");
jTextField10.setText("");
jComboBox1.setSelectedIndex(0);
}private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
try {
conInit.conecta();
conInit.statement.executeUpdate(“INSERT INTO contatos (nome, endereco, bairro, cidade, uf, cep, telresidencial, telcomercial, telmovel, email, site) VALUES (’” + jTextField1.getText() + “’, '” + jTextField2.getText() + “’, '” + jTextField3.getText() + “’, '” + jTextField4.getText() + “’, '” + jComboBox1.getSelectedItem() + “’, '” + jFormattedTextField1.getText() + “’, '” + jFormattedTextField2.getText() + “’, '” + jFormattedTextField3.getText() + “’, '” + jFormattedTextField4.getText() + “’, '” + jTextField9.getText() + “’, '” + jTextField10.getText() + “’)”);
JOptionPane.showMessageDialog(rootPane, “Contato cadastrado com sucesso!”);
jFormattedTextField1.setText("");
jFormattedTextField2.setText("");
jFormattedTextField3.setText("");
jFormattedTextField4.setText("");
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField9.setText("");
jTextField10.setText("");
jComboBox1.setSelectedIndex(0);
} catch (SQLException erroInsert) {
JOptionPane.showMessageDialog(rootPane, "Erro ao gravar dados.\nDetalhes: " + erroInsert);
}
conInit.desconecta();
classImport.fillTableContact();
} [/code]
essas são as partes que mais nos interessam.
O que tá errado? Por que meu jTable não atualiza a partir de outro jFrame no qual ele não está contido.