Non necessariamente la finestra di input deve "sapere" direttamente del TableModel. Puoi anche disaccoppiare il tutto con una interfaccia.
La tua finestra di input potrebbe ricevere (in qualunque modo ti sembra utile/appropriato) un oggetto di tipo interfaccia es. TableUpdater con un metodo es. setTableData(List<TuoTipo>) o setTableData(Object[][]) o ancora un altro tipo di metodo a seconda di come sono tipizzati/strutturati i dati.