Hi,
ich habe eine Methode, die mir ein TableModel zurückgibt (zum Füllen einer JTable aus Datenbank).
Ich arbeite mit unterschiedlichen TableModels und muss so, wie ich es jetzt gestaltet habe, in jeder Klasse (mit eigenem TableModel) explizit diese Methode hinzufügen.
Wie schaffe ich es, dass ich diese Methode "auslagern" kann und das TableModel irgendwie aus den jeweiligen Klassen übergeben kann und so nur EINE Methode habe, die aber halt in der Hinsicht flexibel ist.
Geht das?
Also in der einen Klasse die Funktion Auslagerung.newModel(..., TableModel_JAVAFORUM) und in der anderen z.B.
Auslagerung.newModel(..., TableModel_anderesJAVAFORUM) aufrufen kann.
Ziel ist es, dass ich den Code ein wenig kompakter schreibe und Funktionen, die sich nur in solchen "Kleinigkeiten" unterscheiden nur 1mal schreiben brauche.
Ich hoffe, dass ich mich verständlich ausgedrückt habe...
ich habe eine Methode, die mir ein TableModel zurückgibt (zum Füllen einer JTable aus Datenbank).
Code:
...
DefaultTableModel aModel = newModel(query, columnNames);
...
}
public static TableModel_JAVAFORUM newModel(String query,
String[] columnNames) {
TableModel_JAVAFORUM aModel = new TableModel_JAVAFORUM();
Connection con;
try {
con = Methods.getConnection();
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
// TableModel definition
aModel.setColumnIdentifiers(columnNames);
// Loop through the ResultSet and transfer in the Model
final java.sql.ResultSetMetaData rsmd = rs.getMetaData();
int colNo = rsmd.getColumnCount();
while (rs.next()) {
Object[] objects = new Object[colNo];
for (int i = 0; i < colNo; i++) {
objects[i] = rs.getObject(i + 1);
}
aModel.addRow(objects);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return aModel;
}
Ich arbeite mit unterschiedlichen TableModels und muss so, wie ich es jetzt gestaltet habe, in jeder Klasse (mit eigenem TableModel) explizit diese Methode hinzufügen.
Wie schaffe ich es, dass ich diese Methode "auslagern" kann und das TableModel irgendwie aus den jeweiligen Klassen übergeben kann und so nur EINE Methode habe, die aber halt in der Hinsicht flexibel ist.
Geht das?
Also in der einen Klasse die Funktion Auslagerung.newModel(..., TableModel_JAVAFORUM) und in der anderen z.B.
Auslagerung.newModel(..., TableModel_anderesJAVAFORUM) aufrufen kann.
Ziel ist es, dass ich den Code ein wenig kompakter schreibe und Funktionen, die sich nur in solchen "Kleinigkeiten" unterscheiden nur 1mal schreiben brauche.
Ich hoffe, dass ich mich verständlich ausgedrückt habe...