Hallo!
Meine Tabelle wird mit meine Tablemodell durch die Datenbank gefüllt und im Konstrukor inintialisiert und geladen. Nun möchte ich die Tabelle nachdem ein Datenbank geändert worden ist neue laden lassen. Wie mach ich das am besten? Den Kontrukor erneut aufrufen?
Tablemodell:
die Main
Gruß niesel
Meine Tabelle wird mit meine Tablemodell durch die Datenbank gefüllt und im Konstrukor inintialisiert und geladen. Nun möchte ich die Tabelle nachdem ein Datenbank geändert worden ist neue laden lassen. Wie mach ich das am besten? Den Kontrukor erneut aufrufen?
Tablemodell:
Java:
package mydbtable;
import java.awt.*;
import javax.swing.event.*;
import javax.swing.table.*;
import javax.swing.*;
import java.sql.*;
public class MyDBTableModel extends AbstractTableModel {
private String[] COLUMN_NAMES = {"ID", "Name", "Vorname"};//Spaltennamen
private static final Class[] COLUMN_CLASSES = {Integer.class, String.class, String.class};
private Object[][] data;
private String query = "SELECT * from mitarbeiter";
public MyDBTableModel() {
CollectDatas cl = new CollectDatas();
ResultSet rs = cl.Abfage(query);
data = cl.makeDataArray(3, rs);
System.out.println("------------Tabellenarray----");
System.out.println("Data="+data.length);
}
public Class getColumnClass(int col) {
return COLUMN_CLASSES[col];
}
public int getColumnCount() {
return COLUMN_CLASSES.length;
}
public String getColumnName(int col) {
return COLUMN_NAMES[col];
}
public Object getValueAt(int col, int row) {
Object _obj = null;
_obj = data[col][row];
return _obj;
}
public int getRowCount() {
return data.length;
}
public boolean isCellEditable(int row, int col) {
return (col == 1 || col == 2) ? false : false;
}
public void setValueAt(Object value, int row, int col) {
if (value == null) {
return;
}
data[row][col] = value;
fireTableDataChanged();
}
}
Java:
public class Main extends JFrame implements TableModelListener {
private JTable table;
private MyDBTableModel model;
private JLabel gesamt;
private JButton button;
private SqlType sqlt = new SqlType();
private ArrayList<SqlType> sqllist = new ArrayList<SqlType>();
private Connection conn = null;
public Main() {
super("Tabletest");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container c = getContentPane();
model = new MyDBTableModel();
table = new JTable(model);//Tabelle mit Tablemodell versorgen
table.getModel().addTableModelListener(this);
table.addMouseListener(new MouseAdapter() {//Doppelclick zum Aufrufen eines JDialog
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
int row = table.getSelectedRow();
int id = (Integer)table.getValueAt(row, 0);
String name = (String) table.getValueAt(row, 1);
String fname = (String) table.getValueAt(row, 2);
System.out.println(id+","+name+","+fname);
SetDataDialog sdt = new SetDataDialog(Main.this,true, name, fname, id, table);//JDialog zum ändern von Tabelleneinträgern
sdt.setVisible(true);
}
}
});