MyTableModel macht nicht was es soll

Vielleicht solltest du auch mal den passenden Code dazu posten.

Zum Beispiel mal dein neues Model.

MFG

Sascha
 
hab das von dir eig einfach 1:1 übernommen^^

Code:
public class PL_AngebotTabelle extends DefaultTableModel{
	
    final String tabTitelPosStr = "Pos";
    final String tabTitelArtNrStr = "Artikelnummer";
    final String tabTitelArtBezStr = "Artikelbezeichnung";
    final String tabTitelArtMeStr = "Menge";
    final String tabTitelEinhStr = "Einheit";
    final String tabTitelEinzPrStr = "Einzelpreis";
    final String tabTitelGesPrStr = "Gesamtpreis des Artikels";	
	
    String columnNames[] ={tabTitelPosStr, tabTitelArtNrStr, tabTitelArtBezStr, tabTitelArtMeStr, tabTitelEinhStr,
			tabTitelEinzPrStr, tabTitelGesPrStr};
    String zeilen[][] = {{"1", "2", "3", "4", "5", "6", "7"}};
	
    public int getColumnCount() {
    	return columnNames.length;
    }

    public int getRowCount() { 
    	if(zeilen != null){
    		return zeilen.length;
    	}
    	else{
    		return 0;
    	}
    }

    public String getColumnName(int col) {
    	return columnNames[col];
    }

    public Object getValueAt(int row, int col) {
        return zeilen[row][col];
    }

    public Class getColumnClass(int c) {
        return getValueAt(0, c).getClass();
    }
    
    public boolean isCellEditable(int row, int col){
    	return true;
    }
    
}
 
Dann ist es auch klar das addRow nicht funktioniert. Die Methode addRow ist auch auf das DefaultTableModel ausgelegt. Du kannst nicht erwarten, dass diese Methode oder auch andere Methoden die du nicht überschrieben hast, für dich auch funktionieren.

Das DefaultTableModel arbeitet intern mit einem Vector. Grob gesagt, wird dem Vector bei addRow ein leeres Feld hinzugefügt. Dadruch wird dann in der JTable eine neue leere Zeile angezeigt.
Das funktioniert aber bei dir nicht, da du mit einem Array arbeitest. Du solltest das ganze nochmal überdenken und es vielleicht so realisieren, wie ich es oben vorgeschlagen hab.

MFG

Sascha
 
Zurück