Hi,
ich habe ein DefaultTableModel und ein JTable, dass ich mit Daten aus einer DB per Vectoren fülle.
Möchte ich nun ein Datensatz löschen, funktioniert das auch, allerdings aktualisiert sich die Tabelle nicht. D.h. dass der gelöschte Datensatz noch zu sehen ist.
fireTableDataChanged() klappt also noch nicht. Ich seh leider nicht, wo ich meinen Fehler habe.
Vielen Dank schonmal und einen guten Rutsch
ich habe ein DefaultTableModel und ein JTable, dass ich mit Daten aus einer DB per Vectoren fülle.
Möchte ich nun ein Datensatz löschen, funktioniert das auch, allerdings aktualisiert sich die Tabelle nicht. D.h. dass der gelöschte Datensatz noch zu sehen ist.
fireTableDataChanged() klappt also noch nicht. Ich seh leider nicht, wo ich meinen Fehler habe.
Java:
// Vector für Spaltenüberschrift mit Werten belegen
Vector<String> columnNames = new Vector<String>();
columnNames.add("Int. Kürzel");
columnNames.add("Name");
columnNames.add("Stadt");
columnNames.add("Land");
// Vector mit allen Airports aus DB
Vector<Airport> allAirports = admin.getAllAirports();
// Vector mit nachfolgender for-Schleife mit Werten für JTable belegen
Vector<Vector> rowData = new Vector<Vector>();
for(int i = 0; i<allAirports.size(); i++) {
Vector<String> TempString = new Vector<String>();
String internationalId = allAirports.get(i).getInternationalId();
TempString.addElement(internationalId);
String portName = allAirports.get(i).getPortName();
TempString.addElement(portName);
String portCity = allAirports.get(i).getPortCity();
TempString.addElement(portCity);
String portCountry = allAirports.get(i).getPortCountry();
TempString.addElement(portCountry);
rowData.addElement(TempString);
}
final DefaultTableModel model = new DefaultTableModel( rowData, columnNames );
final JTable table = new JTable(model);
table.setModel(model);
table.setAutoCreateRowSorter(true);
table.getColumnModel().getColumn(0).setPreferredWidth(10);
table.getColumnModel().getColumn(1).setPreferredWidth(150);
table.getColumnModel().getColumn(2).setPreferredWidth(100);
table.getColumnModel().getColumn(3).setPreferredWidth(100);
constraints.gridx = 0;
constraints.gridy = 2;
constraints.gridwidth = 3;
table.setPreferredScrollableViewportSize(new Dimension(550,200));
table.setVisible(true);
jp.add( new JScrollPane(table), constraints);
...
Loeschen.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e){
try {
admin.deleteAirport(table.getModel().getValueAt(iSelectedRow, 0).toString(),
table.getModel().getValueAt(iSelectedRow, 1).toString(),
table.getModel().getValueAt(iSelectedRow, 2).toString(),
table.getModel().getValueAt(iSelectedRow, 3).toString());
model.fireTableDataChanged();
} catch (RemoteException ex) {
Logger.getLogger(AirportManage.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
...
Vielen Dank schonmal und einen guten Rutsch