Erste Schritte Java JTable leere Reihen löschen

XSlippy666

Mitglied
Guten Abend liebe Community,

ich sitze jetzt schon einige Zeit an einem Organizer. In einer Frame im Programm erstelle ich eine Tabelle. In die Tabelle wird der Inhalt einer CSV Datei angezeigt(die ganzen Termine die man eingetragen hat)!
Wenn ich jetzt in der Tabelle eine gesammte Reihe lösche und die Tabelle dann wieder zurück in die CSV schreibe, dann schreibt das Programm die Seperatoren in die CSV und die anderen Events werden übernommen.
Ich möchte jedoch, dass das Programm nur die Tabellenreihen in die CSV schreibt, indenen auch etwas drin steht!!! Wie kann ich das anstellen? Ich habe mir überlegt, dass ich einfach die Tabelle so trimme, dass die leeren Reihen gelöscht werden. Ich habe es schon mit einigen if-Statements versucht, aber es will nicht klappen. Hier ist mein Quellcode:

Java:
                     ///////////Die Tabelle wird in ein zweidimensionales Array gespeichert///////////   
         
                     System.out.println("vor tabelle");
                     for(int row=0;row<table4.getRowCount();row++){
                               String s = "";
                               for(int col=0;col<table4.getColumnCount();col++){
                                s = table4.getValueAt(row,col).toString();
                                schreibe[row][col] = s;

                                }
             
                   }
                   System.out.println("nach tabelle");
         
  
///////////Das Array wird zurück in die Datenbenk geschrieben und ersetzt alle vorherigen Einträge///////////    
         		TableModel model = table4.getModel();
			FileWriter out = new FileWriter("sortiertesttabelle.csv");
                        String prov = ";;;;;;";


	for(int i=0; i< model.getRowCount(); i++) {                   /// <- HIER
		for(int j=0; j < model.getColumnCount(); j++) {
                        if(model.getValueAt(i,j)!=null){
			out.write(model.getValueAt(i,j).toString()+";");
                        }
			}
			out.write("\n");
		}

Ich hoffe ihr könnt mir helfen.
Vielen Dank
 
Schreib dir ein eigenes TabelModel, dann ist das selektierte Verarbeiten kein problem.

Gruß Vanny
 
Ich habe mir überlegt, dass ich einfach die Tabelle so trimme, dass die leeren Reihen gelöscht werden. Ich habe es schon mit einigen if-Statements versucht, aber es will nicht klappen. Hier ist mein Quellcode:

Java:
	for(int i=0; i< model.getRowCount(); i++) {                   /// <- HIER
		for(int j=0; j < model.getColumnCount(); j++) {
                        if(model.getValueAt(i,j)!=null){
			out.write(model.getValueAt(i,j).toString()+";");
                        }
			}
			out.write("\n");
		}

Du müsstest die Abfrage an der Stelle machen, wo Du "HIER" geschrieben hast. Wenn die Zeile i leer ist, überspringst Du die ganze for-Schleife, die die Spalten der Zeile durchläuft. (*)

Eine Zeile ist leer, wenn alle ihre Spalten leer sind. Eine Spalte ist leer, wenn sie den Wert null hat oder logisch leer ist, z.B. einen leeren String enthält.

Gruß,
André

PS: (*) und natürlich auch die [c]out.write("\n")[/c] Anweisung.
 
Zuletzt bearbeitet:

Zurück
Oben