JTable vullen met gegevens van 1 arraylist

Status
Niet open voor verdere reacties.

EdjeCageman

Gebruiker
Lid geworden
24 okt 2011
Berichten
273
Wist er niet even een goede titel bij te vinden, maar dit is het probleem:

Ik heb nu een klant, van deze klant wil ik het sofinummer hebben en dit sofinummer wil ik vergelijken met een arraylist waarin verschillende behandelingen staan. Deze behandeling heeft een polisnummer (wat gelijk is aan een sofinummer)

Dit is de aanroep van de gewenste code:
Code:
	private void BehandelingButtonActionPerformed(java.awt.event.ActionEvent evt) 
	{
		try
		{	
			int Rijnr = jTable1.getSelectedRow();
			String Sofinummer = (String) jTable1.getValueAt(Rijnr, 7);
			GUI_Behandeling a = new GUI_Behandeling();
			a.vullen(Sofinummer);
			new GUI_Behandeling().setVisible(true);
		}
		catch(ArrayIndexOutOfBoundsException e)
		{
			System.out.println("fout in selectie");
		} 
	}

En de methode om de jTable te vullen:
Code:
public void vullen(String sofinummer)
	    {
	    	manager.voegsamen();
	    	System.out.println(manager.readBehandelingLijst());
	    	int waarde = 0;
	    	for(Behandeling behandeling: manager.readBehandelingLijst())
	    	{
	    		if(sofinummer.equals(behandeling.getPolisnummer()))
	    		{
	    			model.addRow(leegrij);
	    			jTable1.setValueAt(behandeling.getPolisnummer(), waarde, 0);
	    			jTable1.setValueAt(behandeling.getOmschrijving(), waarde, 1);
	    			jTable1.setValueAt(behandeling.getStatus(), waarde, 2);
	    			jTable1.setValueAt(behandeling.getStartdatum(), waarde, 3);
	    			jTable1.setValueAt(behandeling.getEinddatum(), waarde, 4);
	    			jTable1.setValueAt(behandeling.getbeginUur(), waarde, 5);
	    			jTable1.setValueAt(behandeling.getEindUur(), waarde, 6);
	    			jTable1.setValueAt(behandeling.getFysiotherapeut(), waarde, 7);
	    			System.out.println(behandeling.getPolisnummer());
	    		}
	    	}
	    }

De "Voegsamen()" methode doet: Er worden gegevens uit een objectbestand gehaald dmv ObjectInputStream, deze gegevens worden in een arraylist gezet en deze arraylist wordt dan samengevoegd met de arraylist van behandelingen dmv: .AddAll()
Wat overigens helemaal werkt.


Nu het probleem is:
Als ik het sofinummer uit een klant haal, en deze komt ook voor in polisnummer krijg ik de System.out terug met "fout in selectie"
Terwijl als ik een klant heb met een sofinummer en deze komt niet voor in polisnummer dan komt hij wel in de 1ste loop...Zit er nu al uren en uren op te staren, maar kom er niet uit.

Dus ziet iemand een fout?:) Alvast bedankt
 
hmm heb zelf nog nooit met een jTabel gewerkt dus ga er van uit dat je dat goed gedaan hebt.

Je aanroep van de GUI doe je wel wat apart.

Code:
GUI_Behandeling a = new GUI_Behandeling();
            	       a.vullen(Sofinummer);
		       new GUI_Behandeling().setVisible(true);

waarom niet a.setVisible(true);

als alles goed gaat in je a.vullen() methode, zal je het nooit te zien krijgen aangezien je 2 losse instanties creerd van je GUI.
verder laat je degene zien waarin geen gegevens staan.

Verder kan ik als tip mee geven om de debug functie van je IDE te gebruiken.
Aan de foutmelding: fout in selectie, kan je natuurlijk niks mee.

Met de debug functie kan je de code regel voor regel laten uitvoeren en kan je dus vaak precies zien op welke regel/blok het daadwerkelijk fout gaat.
 
Oh ja sorry, domme fout:P en die "fout in selectie" had ik niet helemaal gekopieerd sorry, ik krijg een "java.lang.ArrayIndexOutOfBoundsException: 7 >= 7" terug.
Alleen ik zie de fout niet.
 
Ik druk op "Reageren" en dacht opeens aan dit:

In de code heb ik de tabel aangemaakt, en heb ik de eerste kolom verwijderd (polisnr) omdat de gebruiker hier weinig aan had dmv:
jTable1.removeColumn(jTable1.getColumnModel().getColumn(0));

Nu heb ik deze regel eruit gehaald, en nu werkt het systeem totaal naar behoren:D ik helemaal blij.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan