N
Nico22333
Gast
Hey @ all,
Ich habe ein Problem bezüglich der tableChanged Methode. Und zwar habe ich eine vom AbstractTableModel abgeleitete selbst erstelltes TableModel. In meinem "Controller" habe ich dann zwei Instanzen von den Model erstellt und jeweils einem JTable übergeben und natürlich jeweils einen TableModelListener angemeldet. Soweit so gut. Nun habe ich die Methode tableChanged im Controller implementiert. Jetzt zum Problem: Wie unterscheide ich in der tableChangedMethode welche Tabelle ich gerade benutze. Wenn ich den Code für lediglich eine Tabelle in der Methode implementiere funktioniert alles. Implementiere ich den Code der zweiten Tabelle darin kommt es zu erheblichen Problemen...
an der "ChecklistTableModel"-Klasse kann es eigentlich nicht liegen, da es ja prinzipiel funktioniert!
der Code der tableChanged Methode ist eigentlich weitgehend irrelevant. Ich würde nur gerne Wissen, wie ich eine Fallunterscheidung darin einbringen kann, sprich: Wenn "tableModel" dann mach das, wenn "templateTableModel" dann mach das Andere...!!!
Ich hoffe, dass ich nicht all zu verwirrend!
Vielen Dank im Voraus!
Ich habe ein Problem bezüglich der tableChanged Methode. Und zwar habe ich eine vom AbstractTableModel abgeleitete selbst erstelltes TableModel. In meinem "Controller" habe ich dann zwei Instanzen von den Model erstellt und jeweils einem JTable übergeben und natürlich jeweils einen TableModelListener angemeldet. Soweit so gut. Nun habe ich die Methode tableChanged im Controller implementiert. Jetzt zum Problem: Wie unterscheide ich in der tableChangedMethode welche Tabelle ich gerade benutze. Wenn ich den Code für lediglich eine Tabelle in der Methode implementiere funktioniert alles. Implementiere ich den Code der zweiten Tabelle darin kommt es zu erheblichen Problemen...
an der "ChecklistTableModel"-Klasse kann es eigentlich nicht liegen, da es ja prinzipiel funktioniert!
Java:
//Erstellung der TableModel im Controller
private ChecklistTableModel tableModel = ChecklistTableModel.getInstance();
private ChecklistTableModel templateTableModel = ChecklistTableModel.getInstance();
//Anmeldung der Listener im Controller
tableModel.addTableModelListener(this);
templateTableModel.addTableModelListener(this);
//Übergabe der TableModel an die JTables der Frames
useChecklistFrame.getTable().setModel(useTableModel);
templatesFrame.getTable().setModel(templateTableModel);
//Ausschnitt aus tableChanged Methode
public void tableChanged(TableModelEvent e)
{
int row = e.getFirstRow();
int column = 1;
TableModel model = (TableModel)e.getSource();
if(e.getType()== TableModelEvent.UPDATE)
{
String columnName = tableModel.getColumnName(column);
Object rows = tableModel.getValueAt(row, column);
int newCount = (Integer)rows;
String itemName = (String)tableModel.getValueAt(row, 0);
String checklistName = (String)actualChecklist.getActualChecklistCombo().getSelectedItem();
actualChecklistDAO_DB.updateCount(checklistName, itemName, newCount);
tableModel.removeAll();
item = actualChecklistDAO_DB.getChecklistItems(checklistName);
for(int i=0; i<item.size();++i)
{
String name = item.elementAt(i).getName();
int count = item.elementAt(i).getCount();
tableModel.addRow(name, count);
}
}
der Code der tableChanged Methode ist eigentlich weitgehend irrelevant. Ich würde nur gerne Wissen, wie ich eine Fallunterscheidung darin einbringen kann, sprich: Wenn "tableModel" dann mach das, wenn "templateTableModel" dann mach das Andere...!!!
Ich hoffe, dass ich nicht all zu verwirrend!
Vielen Dank im Voraus!