Schlaufenproblem

MariusMeier

Mitglied
Hallo zusammen

Folgender Code habe ich:
Code:
for(int i=0;i<fpars.getVariables().size();i++) {
	String bufferedVar[] = fpars.getVariables().get(i).toString().split(":");
	bufferedVar[1] = bufferedVar[1].trim();
	
	if(model.getRowCount() != 0) {
		for(int k=0;k<model.getRowCount();k++) {
			System.out.println("Value At: " + model.getValueAt(k, 0));
			if(!(bufferedVar[0].equals(model.getValueAt(k, 0)))) {
				model.addRow(new Object[] {bufferedVar[0],bufferedVar[1]});
				
			}
		}
		
	}
	
	else {
		model.addRow(new Object[] {bufferedVar[0],bufferedVar[1]});
	}
}

Problem: Wenn ich über ein Textfeld meine Variabeln der Formel einlese, werden diese in der JTable angezeigt. Nur das Problem ist momentan folgendes, dass es mir die JTable trotz der equal() abfrage (Siehe Code) doppelte Werte in die Tabelle schreibt? Wie soll ich das ändern? Sieht jemand das Problem?

MFG Marius Meier
 
Du willst ja wissen ob deine Variable noch GAR nicht in einer Tabellenzeile vorhanden ist. Also darfst du nicht in der inneren Schleife schon eine Zeile hinzufügen. Denn das tust du sobald eine Zeile mit einer Variablen gefunden wird die nicht deiner aktuellen entspricht. Und das kommt nunmal wahrscheinlich immer vor.

Du musst vor der inneren Schleifen dir in nem boolean merken ob die Variable schon enthalten ist oder nicht. Nach der Schleife prüfst du diesen boolean. Ist er falsch, so kannst du eine Zeile hinzufügen.

Und: Es heißt Schleife und nicht Schlaufe!
 
Zurück