Guten Abend,
ich stehe vor folgendem Problem:
Ich hable einen Main-Frame welcher nur einen JTable und einen Button "Hinzufügen" enthält.
Weiterhin habe ich eine Klasse MyModel geschrieben welche von AbstractTableModel erbt und diese an meinen JTable übergeben.
Nun zu meinem Problem. Wenn ich im Main Frame auf Hinzufügen klicke, öffnet sich ein neuer Frame "Profil" wo ich meine INSERT-Eingaben machen kann und über einen "Speichern"- Button in meiner Datenbank ablege. Klappt soweit alles wunderbar. Allerding möchte ich nun dass mein JTable im MainFrame nach einem klick auf "Speichern" im ProfilFrame automatisch aktuallisiert wird.
Dazu habe ich bisher keine Lösung gefunden. Ich hoffe ihr könnt mir weiterhelfen
ich stehe vor folgendem Problem:
Ich hable einen Main-Frame welcher nur einen JTable und einen Button "Hinzufügen" enthält.
Weiterhin habe ich eine Klasse MyModel geschrieben welche von AbstractTableModel erbt und diese an meinen JTable übergeben.
Nun zu meinem Problem. Wenn ich im Main Frame auf Hinzufügen klicke, öffnet sich ein neuer Frame "Profil" wo ich meine INSERT-Eingaben machen kann und über einen "Speichern"- Button in meiner Datenbank ablege. Klappt soweit alles wunderbar. Allerding möchte ich nun dass mein JTable im MainFrame nach einem klick auf "Speichern" im ProfilFrame automatisch aktuallisiert wird.
Dazu habe ich bisher keine Lösung gefunden. Ich hoffe ihr könnt mir weiterhelfen
Java:
public class MyModel extends AbstractTableModel {
public Connection con;
public Statement stm;
public ResultSet rs;
public PreparedStatement pst;
public MyModel(){
connect();
fillTable();
}
@Override
public int getColumnCount() {
return 7;
}
@Override
public int getRowCount() {
int rows = 0;
try {
rs.last();
rows = rs.getRow();
} catch (Exception ex) {
System.out.println("Error: " + ex);
ex.printStackTrace();
}
return rows;
}
@Override
public String getColumnName(int c) {
if (c == 0)
return "A";
else if (c == 1)
return "B";
else if (c == 2)
return "C";
else if (c == 3)
return "D";
else if (c == 4)
return E";
else if (c == 5)
return "F";
else if (c == 6)
return "G";
else
return "?";
}
@Override
public Object getValueAt(int row, int col) {
Object o = null;
try {
rs.absolute(row+1);
o = rs.getObject(col+1);
} catch (Exception ex) {
System.out.println("Error: " + ex);
ex.printStackTrace();
}
return o;
}
void connect() {
try {
String driver = "com.mysql.jdbc.Driver";
Class.forName(driver);
String db = "jdbc:mysql://localhost:3306/datenbank";
String un = "root";
String pw = "";
con = DriverManager.getConnection(db, un, pw);
stm = con.createStatement();
// JOptionPane.showMessageDialog(null, "Connected");
System.out.println("Connected");
}
catch (Exception ex) {
// JOptionPane.showMessageDialog(null, "Not Connected");
System.out.println("Not connected");
}
}
public void fillTable() {
try {
String sql = "select * from daten";
pst = con.prepareStatement(sql);
rs = pst.executeQuery();
}
catch (Exception ex) {
JOptionPane.showMessageDialog(null, ex);
}
}
}
Zuletzt bearbeitet: