If you call tbm.fireTableRowsInserted(0, 0) then the table will be notified that the model has changed. The model can't fire the event itself because you have modified its Vectors behind its back.
Simpler would be to use the model's methods instead: tbm.addRow() or tbm.insertRow(). [also: tbm.addColumn()] Not only will these fire events for you automatically but I think they do some error-checking, which could be handy if you are adding a row of length 1 to a 2-column table model.
[edit: changed tbm.fireTableRowsInserted(1, 1) to tbm.fireTableRowsInserted(0, 0), see below] [ October 09, 2007: Message edited by: Brian Cole ]