TableModel updated nicht aus JDialog

ProggYLouie

Grünschnabel
Hallo

noch ein kleines Problem von mir:

Ich habe auf meiner JTable ein TableModel abgeleitet von AbstractTableModel in dem ist die Funktion setValueAt(Object o, int row, int col) über schrieben mit:

Code:
public void setValueAt(Object val, int row, int col) {
		if (val != null) {
			workingArray[col][row] = val;
		}
		else {
			val = "";
			workingArray[col][row] = val;
		}
		fireTableCellUpdated(row,col);
		saver.save(workingArray);
	}

Jetzt habe ich natürlich noch einen Farme in dem ein JTable "table" ist. Wenn ich jetzt aus diesem Frame über einen ActionListener table.setAvlueAt(...) aufrufe wird durch die fireTableCellUpdated(row,col) Funktion automatisch die table neu geladen und der gesetzte Wert richtig angezeigt. So wie es halt auch sein soll.

Jetzt mein Problem!

Wenn ich die gleiche Funktion aus einem JDialog (der Frame mit dem JTable hat also keinen Fokus mehr) aus aufrufe, dann klappt es nicht mehr. Hier ein Codeausschnitt aus meinem JDialog:

Code:
public class NewDialog extends JDialog {
...
	private void onOK() {
		String selYear = comboBox3.getSelectedItem().toString();
		Integer useYear = new Integer(selYear);
 
		// CalendarUI ist die Klasse mit dem JFrame in dem das JTable sitzt! 
 
		CalendarUI ui = new CalendarUI(useYear.intValue());
		ui.table1.setValueAt("test",0,2);
	}
...
}

Hat einer ne Ahnung was ich da falsch mache. Kann man die fireTableCellUpdated(row,col) Methode noch anders aufrufen als im TableModel?

thx for help!
Louie
 
Hi,
mmh, ich mache es mir da immer relativ einfach, ich nutze immer

this.fireTableDataChanged()

in dem AbstractTableModel.

Kannst du ja mal versuchen, ob es damit geht.

Kann aber auch sein das es am Dialogfenster liegt, wenn das modal ist, wird ja der Hauptframe inaktiv, dh dort werden keine Änderungen sichtbar, bis du den Dialog wieder schließt und der Hauptframe seinen Focus wieder bekommt. Ist jetzt nur ne Vermutung...
 
Hi thx für die schnelle Antwort

leider klappt es nicht so wie du meintest. Ich habe imKonstruktor meines TableModels nochmal fireTableDataChanged() probiert, hat keine Änderung gebracht.

wenn ich den Jdialog auf setModal(false) gestellt habe hats auch nix gebracht.

Hat noch jemand ne Idee?

mfg
Louie
 
Zurück