tableChanged Methode - AbstractTableModel

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!

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!
 

Marco13

Top Contributor
Irgendwas hab' ich wohl übersehen...
Java:
        TableModel model = (TableModel)e.getSource();
        if (model == dasEine) machDies(); 
        else machDas();

Aber zwei Models die sich gegenseitig benachrichtigen und Änderungen im jeweils anderen verursachen könnten sich ins Gehege kommen - das musst du dir überlegen...
 

bERt0r

Top Contributor
Sieht aus wie ein klassischer Fall von Sinn von MVC nicht verstanden. 2 Identische Models für 2 verschiedene Tables, und jetzt willst du sie synchronisieren, so versteh ich das. Warum nimmst du nicht gleich nur eine Model?

Um deine Frage zu beantworten: EventObjects haben die Funktion getSource(), mit der solltest du überprüfen können von wo es herkommt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
S Variable in main soll mit der generierten Zahl aus einer Methode ausgefüllt werden Datenbankprogrammierung 3
D sql query in methode mit rückgabetyp Datenbankprogrammierung 14
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
C Seitensystem mit seek Methode Datenbankprogrammierung 2
D Insert Methode per Servlet Datenbankprogrammierung 2
D Insert Methode per Servlet Datenbankprogrammierung 0
J Datenbank: Methode wegen doppelten User Datenbankprogrammierung 1
W Methode createStatement() Datenbankprogrammierung 14
S Hibernate und Set-Methode Datenbankprogrammierung 16
S Schnellste Methode Datei aus Datenbank herstellen Datenbankprogrammierung 7
A update methode für datenbank Datenbankprogrammierung 2
A Insert Methode Syntaxfehler Datenbankprogrammierung 2
J Methode Datenbankprogrammierung 5
R Effiziente Java-Methode zum finden eines freien PK Datenbankprogrammierung 7
K Schnelle Methode um zu testen ob Datensatz existiert Datenbankprogrammierung 9
G Effektive Methode zum durchsuchen von SQL-Datenbanken Datenbankprogrammierung 7
A Problem mit der Methode setFieldDelimiter("'"); Datenbankprogrammierung 3
L Methode, die Veränderungen in Datenbank zeigt? Datenbankprogrammierung 4
T Methode getColumnIndex(String columnName) ? Datenbankprogrammierung 6
A Blob in Oracle-DB einfügen (veraltete Methode) Datenbankprogrammierung 3
B Methode .next() - das Rätsel für Experten! URGENT Datenbankprogrammierung 2
G SQL-Query Methode Datenbankprogrammierung 4
dat_vin Der Anfänger und das AbstractTableModel Datenbankprogrammierung 12

Ähnliche Java Themen


Oben