Adicionar linha em jtable com abstracttablemodel

olá pessoal
não estou conseguindo inserir linhas numa tabela
em tempo de execução
ao sair de um campo (jtextfield) onde o usuario vai informar o numero de linhas q deseja inserir
estou usando o abstracttabelmodel
alguém pode me ajudar
obrigado

Cade seu modelo?

	JTable table = null;
	// cria tabelmodel da tabela
	//private boolean DEBUG ;
	
	class MeuTableModel extends AbstractTableModel {
		
		//private Object[][] data = { { "Mary", new Color(153, 0, 153), "Snowboarding", new Integer(5), new Boolean(false) }, { "Alison", new Color(51, 51, 153), "Rowing", new Integer(3), new Boolean(true) }, { "Kathy", new Color(51, 102, 51), "Knitting", new Integer(2), new Boolean(false) }, { "Sharon", Color.red, "Speed reading", new Integer(20), new Boolean(true) }, { "Philip", Color.pink, "Pool", new Integer(10), new Boolean(false) } };

		//private String[] TituloColuna = { "Nome", "Cor", "Esporte", "Idade" , "Data Nascimento" , "Salário" } ;
		private String[] TituloColuna = { "Nome" } ;
		private Object[][] DadosTabela = { } ;
		
		public int getColumnCount() {
			return TituloColuna.length; // pega quantidade de colunas
		}

		public int getRowCount() {
			return DadosTabela.length; // pega quantidade de linhas
		}

		public Object getValueAt(int linha, int coluna) {
			return DadosTabela[linha][coluna]; // pega valor da celula
		}

		public String getColumnName(int col) {
			return TituloColuna[col]; // seta titulo da coluna
		}
		
		//public Class getColumnClass(int c) {
		//	return getValueAt(0, c).getClass();
		//}

		public void limpaDados() {
		//	DadosTabela = null ;
		}
		
		public void addRow(Object newRow[]) {
			//Object newData[][] = new Object[getRowCount() 1][getColumnCount()];
			Object newData[][] = new Object[getRowCount() ][getColumnCount()];
			for(int i = 0; i < getRowCount(); i++) 
			//newData[i] = data[i];
			newData[i] = DadosTabela[i];
			newData[getRowCount()] = newRow;
			//data = newData;
			DadosTabela = newData;
		} 
		
		public void adicionaLinhas(int linhas) {
			
			//DefaultTableModel modelo = (DefaultTableModel)getTabela().getModel();
			//DefaultTableModel modelo = (DefaultTableModel)monta_tabela().getModel();
			
			//AbstractTableModel modelo = (AbstractTableModel) table.getModel();
			
			//for ( int i = 0 ; i < linhas ; i++ ) {
				//((DefaultTableModel) modelo).addRow( new String [] { "123" } );
				//((AbstractTableModel) modelo).addRow( new String [] { "123" } );
			//}
			
			//fireTableRowsInserted(1,1);
			//DadosTabela = (Object) "marcos" ;
			//modelo.addRow(new Object[modelo.getColumnCount()]) ;
			//.addRow(linhas);
		}

		//public void setValueAt(Object value, int row, int col) {
		//	DadosTabela[row][col] = value;
		//	fireTableCellUpdated(row, col);
		//}
		
		
		
		/*

		public Class getColumnClass(int c) {
			return getValueAt(0, c).getClass();
		}

		public boolean isCellEditable(int row, int col) {
			if (col < 1) {
				return false;
			} else {
				return true;
			}
		}

		public void setValueAt(Object value, int row, int col) {
			if (DEBUG) {
				System.out.println("Setting value at " + row + "," + col + " to " + value + " (an instance of " + value.getClass() + ")");
			}

			data[row][col] = value;
			fireTableCellUpdated(row, col);

			if (DEBUG) {
				System.out.println("New value of data:");
				printDebugData();
			}
		}

		private void printDebugData() {
			int numRows = getRowCount();
			int numCols = getColumnCount();

			for (int i = 0; i < numRows; i++) {
				System.out.print("    row " + i + ":");
				for (int j = 0; j < numCols; j++) {
					System.out.print("  " + data[i][j]);
				}
				System.out.println();
			}
			System.out.println("--------------------------");
		}
		*/
		
	}
	
	void monta_tabela() {
		
		
		table = new JTable(new MeuTableModel()); // cria tabela
		
		table.getTableHeader().setReorderingAllowed(false); // muda as colunas de posicao
		table.getTableHeader().setResizingAllowed(true); // aumenta e diminui o tamanho da coluna
		table.getTableHeader().setBackground(Color.orange); // cor do fundo do titulo da coluna
		table.getTableHeader().setForeground(Color.green); // cor do fonte do titulo da coluna
		table.getTableHeader().setFont(new Font("Dialog", Font.BOLD, 12)); // fonte do titulo
		
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // seleciona apenas 1 linha
		table.setGridColor(Color.red); // cor das linhas
		table.setSelectionBackground(Color.yellow); // cor da linha selecionada
		table.setEnabled(true); // editar dados da tabela - true edita false nao edita
		table.setForeground(Color.magenta); // cor da fonte
		table.setFont(new Font("Dialog", Font.PLAIN, 12)); // fonte 
		table.setShowHorizontalLines(true); // true mostra linhas horizontais
		table.setShowVerticalLines(true); // true mostra linhas verticais
		table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // auto tamanho da tabela, para barra de rolagem
		table.setAutoCreateRowSorter(true); // ordernar a tabela clicando no nome da coluna
		table.getColumnModel().getColumn(0).setPreferredWidth(200); // tamanho da coluna
		//table.getColumnModel().getColumn(1).setPreferredWidth(100); // tamanho da coluna
		//table.getColumnModel().getColumn(2).setPreferredWidth(200); // tamanho da coluna
		//table.getColumnModel().getColumn(3).setPreferredWidth(100); // tamanho da coluna
		//table.getColumnModel().getColumn(4).setPreferredWidth(200); // tamanho da coluna
		//table.getColumnModel().getColumn(5).setPreferredWidth(100); // tamanho da coluna
		
		// barra de rolagem da tabela
		JScrollPane scrollPane = new JScrollPane(table);
		scrollPane.setVisible(true);
		scrollPane.setBounds(10, 200, 550, 100);
		scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		pl.add( scrollPane );
		
		
		/*
		linhasMidia = new Vector();
		colunasMidia = new Vector();

		colunasMidia.add("Título ");
		colunasMidia.add("Tempo");
		
		TableModelMidia = new DefaultTableModel(linhasMidia, colunasMidia);
		jTableMidia = new JTable(TableModelMidia);
		jTableMidia.setVisible(true); // tabela visivel
		jTableMidia.getTableHeader().setReorderingAllowed(false); // trava
		jTableMidia.getTableHeader().setResizingAllowed(true); // trava
		//jTableMidia.getTableHeader().setBackground(Color.LIGHT_GRAY); // cor
		//jTableMidia.setForeground(Color.black); // cor da fonte
		jTableMidia.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); // seleciona
		//jTableMidia.setSelectionBackground(Color.green); // cor linha
		jTableMidia.setGridColor(Color.lightGray); // cor das linhas
		jTableMidia.setShowHorizontalLines(true); // linhas horizontais
		jTableMidia.setShowVerticalLines(true); // linhas verticais
		jTableMidia.setEnabled(true); // editar dados da tabela - false
		jTableMidia.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // auto
		jTableMidia.setAutoCreateRowSorter(true); // ordernar a tabela
		//jTableMidia.setFont(new Font("Dialog", Font.PLAIN, 11));

		jTableMidia.getColumnModel().getColumn(0).setPreferredWidth(430); // tamanho
		jTableMidia.getColumnModel().getColumn(1).setPreferredWidth(100); // tamanho

		jTableMidia.getColumnModel().getColumn(0).setCellRenderer(new CellRender_Texto());
		jTableMidia.getColumnModel().getColumn(1).setCellRenderer(new CellRender_Numero());
		
		jTableMidia.getColumnModel().getColumn(0).setCellEditor(new CellEditor_Texto(50));
		jTableMidia.getColumnModel().getColumn(1).setCellEditor(new CellEditor_Numero(6));
		
		TableModelMidia.setRowCount(0);
		
		jScrollPaneMidia = new JScrollPane(jTableMidia);
		jScrollPaneMidia.setVisible(true);
		jScrollPaneMidia.setBounds(10, 200, 550, 100);
		jScrollPaneMidia.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
		jScrollPaneMidia.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
		pl.add(jScrollPaneMidia);
		*/

	}

Seu TableModel é uma cópia do DefaultTableModel. Ele não aproveita as reais vantagens de se estender uma TableModel.

Leia os links da minha assinatura para fazer um TableModel direitinho.