# Neues Problem



## joschika77 (11. Sep 2003)

Wer hilft mir?

Ich schreibe am Anfang eine JTable einem Panel zu.Gebe dem Konstruktor ein Array mit, damit wird die Tabelle beim Start gefüllt.
Nun überschreibe ich das Array und möchte das derTabelle neu zufügen,während das Programm noch läuft.

Gruß Ronn


----------



## DTR (11. Sep 2003)

Versuch mal die Oberfläche neu Zeichen zu lassen. Mit repaint() oder validate(). Wenn das nicht geht, verwende mal statt dem Array einen Vector oder eine ArrayList. Und das neuzeichnen nicht vergessen. Wenn das dann immernoch nicht geht, Dann dierekt das TabelModel holen, und daran die Manipulationen vornehmen.


----------



## joschika77 (11. Sep 2003)

Das wird so was?Wenn  ich irgendwo im Quelltext die  Tabelle neu schreibe?

```
public void itemStateChanged(ItemEvent arg0) 
	{	
		....
	

		if(ComboFeWo != "Ferienwohnung 1")
		{
			//jtableaktivMonat.repaint();            passiert nichts
			//jtableaktivMonat.validate();           passiert nichts
			String spaltennamen[] ={
				"   ","   "	
			};
			laden();  //Array wird neu gefüllt
			
			jtableaktivMonat = new JTable(daten, spaltennamen);
			jtableaktivMonat.setBounds(0,0,480,270);
			jtableaktivMonat.setSelectionForeground(Color.red);
			jtableaktivMonat.setSelectionBackground(Color.yellow);
			jscrollaktivMonat = new JScrollPane(jtableaktivMonat);
			jscrollaktivMonat.setBounds(15,110,480,270);
			add(jscrollaktivMonat);
			
		}
```
*EDIT Verwende in zukunft bitte die Code-tags*


----------



## DTR (11. Sep 2003)

Du must erst den Array neu füllen und dann neu Zeichnen lassen. Hast du den Vector auch schon ausprobiert, statt dem Array?


----------



## joschika77 (11. Sep 2003)

Ein Vector kann ich nicht benutzen.Ich muß das irgendwie mit dem Array hinbekommen.
Ich fülle das Array doch neu mit laden(); und gebe es der alten/neuen Tabelle mit.Komisch!


----------



## DTR (11. Sep 2003)

Kann es sein, das du die neue Tabelle einfach mit add hinzufügst, ohne zuvor die Alte zu entfernen?

Ich würde an deiner Stelle sowiso anders an die Sache heran gehen. Ich würde die Tabelle mit dem Array anlegen, und mir dann das TabelModel von ihr holen. An diesem Model würde ich jetzt die Manipulation der Daten vornehmen. Also wenn sich was ändert das Model ändern (und dann neu Zeichen lassen).


----------



## joschika77 (11. Sep 2003)

Wie funktioniert das mit dem TableModel holen denn?

Gruß Ronn


----------



## DTR (11. Sep 2003)

Laut *API* mit getTabelModel()


----------



## joschika77 (11. Sep 2003)

Ich finde in der API  bei JTable nur getTableHeader() und son Kram.
Bin ich da falsch?

Gruß Ronn


----------



## DTR (11. Sep 2003)

Sorry, falsche Methode. Aber wenn es die nicht gibt, dann muss man halt schauen, wo man sonst noch überall ein TabelModel zurück bekommt. Und das ist nur bei zwei Methoden der Fall. Bei protected  TableColumnModel createDefaultColumnModel()  und  TableModel getModel() .


----------

