Am o problema cu un refresh la un tabel in timp real in momentul in care inserez date noi(in sensul ca nu stiu ce trebuie sa fac ca sa faca asta)
package view;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import java.sql.*;
import java.util.Calendar;
import java.util.Vector;
import javax.swing.*;
import net.proteanit.sql.DbUtils;
import databaseconnection.DatabaseConnection;
import java.util.GregorianCalendar;//pt afisare data si ora meniu
import net.proteanit.sql.DbUtils;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Informatii_evenimente extends JFrame {
private JPanel contentPane;
Connection cnx=null;
ResultSet rs = null;
PreparedStatement pst = null;
private JTable tabel1;
private JTextField textField_ID;
private JTextField textField_Data;
private JTextField textField_Ora;
private JTextField textField_Eveniment;
/**
* Create the frame.
*/
public Informatii_evenimente () {
cnx=DatabaseConnection.ConnecrDb();
//Conexiunea este obtinuta
try{
String sql ="select * from EVENIMENT";
pst=cnx.prepareStatement(sql);
rs=pst.executeQuery();
// se creaza tabelul
JOptionPane.showMessageDialog(null,"Conexiunea s-a realizat");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(400, 100, 715, 335);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JScrollPane scrollPane = new JScrollPane(tabel1);
scrollPane.setBounds(216, 11, 473, 168);
contentPane.add(scrollPane);
JTable table = new JTable(buildTableModel(rs));
scrollPane.setViewportView(table);
JButton buton_iesire = new JButton("Iesire");
buton_iesire.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
buton_iesire.setBounds(600, 263, 89, 23);
contentPane.add(buton_iesire);
buton_iesire.setBackground(Color.LIGHT_GRAY);
textField_ID = new JTextField();
textField_ID.setBounds(98, 15, 86, 20);
contentPane.add(textField_ID);
textField_ID.setColumns(10);
textField_Data = new JTextField();
textField_Data.setBounds(98, 64, 86, 20);
contentPane.add(textField_Data);
textField_Data.setColumns(10);
textField_Ora = new JTextField();
textField_Ora.setBounds(98, 111, 86, 20);
contentPane.add(textField_Ora);
textField_Ora.setColumns(10);
textField_Eveniment = new JTextField();
textField_Eveniment.setBounds(98, 159, 86, 20);
contentPane.add(textField_Eveniment);
textField_Eveniment.setColumns(10);
JLabel JLabel_ID = new JLabel("ID");
JLabel_ID.setBounds(10, 18, 46, 14);
contentPane.add(JLabel_ID);
JLabel JLabel_Data = new JLabel("Data");
JLabel_Data.setBounds(10, 67, 46, 14);
contentPane.add(JLabel_Data);
JLabel JLabel_Ora = new JLabel("Ora");
JLabel_Ora.setBounds(10, 114, 46, 14);
contentPane.add(JLabel_Ora);
JLabel JLabel_Eveniment = new JLabel("Eveniment");
JLabel_Eveniment.setBounds(10, 162, 78, 14);
contentPane.add(JLabel_Eveniment);
JButton buton_adaugare = new JButton("Adaugare");
buton_adaugare.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try{
String sql ="Insert into EVENIMENT (ID,Data,Ora,Eveniment)values(?,?,?,?)";
pst=cnx.prepareStatement(sql);
pst.setString(1,textField_ID.getText());
pst.setString(2,textField_Data.getText());
pst.setString(3,textField_Ora.getText());
pst.setString(4,textField_Eveniment.getText());
pst.execute();
textField_ID.setText("");
textField_Data.setText("");
textField_Ora.setText("");
textField_Eveniment.setText("");
JOptionPane.showMessageDialog(null, "Datele noi au fost salvate");
}
catch(Exception e1)
{
JOptionPane.showMessageDialog(null, e1);
}
//DefaultTableModel();//pt update timp real date tabel
}
});
buton_adaugare.setBounds(10, 263, 89, 23);
contentPane.add(buton_adaugare);
// inchide conexiune
} catch(Exception e){
JOptionPane.showMessageDialog(null, e);
}finally {
try{
rs.close();
pst.close();
}
catch(Exception e){
}
}
}
public static DefaultTableModel buildTableModel(ResultSet rs)
throws SQLException {
ResultSetMetaData metaData = rs.getMetaData();
// nume coloane
Vector<String> columnNames = new Vector<String>();
int columnCount = metaData.getColumnCount();
for (int column = 1; column <= columnCount; column++) {
columnNames.add(metaData.getColumnName(column));
}
// date tabel
Vector<Vector<Object>> data = new Vector<Vector<Object>>();
while (rs.next()) {
Vector<Object> vector = new Vector<Object>();
for (int columnIndex = 1; columnIndex <= columnCount; columnIndex++) {
vector.add(rs.getObject(columnIndex));
}
data.add(vector);
}
return new DefaultTableModel(data, columnNames);
}
}