Esattamente, ci sono arrivato poco fa. Praticamente io ho una tabella di questo tipo:

ingrediente1 | quantità1 | costo1
ingrediente2 | quantità2 | costo2
ingrediente3 | quantità3 | costo3

e così via.
Effettuando una modifica per esempio a quantità1 dovrei aggiornare quantità2 e quantità3 in quanto sono legati in percentuale a quantità1, e di conseguenza aggiornare i costi in base alla quantità, come se fosse per esempio una ricetta. Il problema è che una volta recuperati i valori delle celle che mi interessano e modificati non saprei sinceramente come aggiornare la tabella in quanto come hai detto la gestione mi va in loop.
Ti posto un po' di codice:

codice:
...
model = new MyTableModel();
        model.setDataTable(Query);
        model.addTableModelListener(new TableModelListener() {
            @Override
            public void tableChanged(TableModelEvent e) {
                int col = e.getColumn(); 
                int row = e.getFirstRow();
                String valoreInserito = model.getValueAt(row,col).toString();
                System.out.println(valoreInserito);
                float valore = Float.parseFloat(valoreInserito);
                System.out.println(valore);
                int i = d.TotRow(Query);
                String prova = null;
                for(int k=0;k<i;k++){
                String uno = model.getValueAt(k, col);
                float tre = Float.parseFloat(String.valueOf(uno));
                if(tre != valore){
                    tre += 1;
                    prova = String.valueOf(tre);
                    model.setValueAt(prova, k, col);
                }
                }
            }
        });
...

//MyTableModel

import DAO.ConnectionDAO;import java.awt.*;
import java.sql.*;
import javax.swing.*;
import javax.swing.table.*;
import javax.swing.event.*;


import java.util.Vector;


class MyTableModel extends AbstractTableModel {
  // Variabili di istanza
  // -----------------------------------------------------------------------
  private Vector<Vector<String>> data;
  private Vector<String> columnName;
  private PreparedStatement SQLPreparedStatement;
  // -----------------------------------------------------------------------
  
  MyTableModel() {
    data = new Vector<Vector<String>>();
    columnName = new Vector<String>();
  }
  
  public int getColumnCount() {
    if(columnName == null) return -1;
    return columnName.size();
  }
  
  public int getRowCount() {
    return data.size();
  }
  
  public String getColumnName(int col) {
    if(col >= columnName.size()) return null;
    return columnName.elementAt(col);
  }
  
  public Class getColumnClass(int c) {
    return String.class;
  }
  
  // La prima colonna non e' modificabile
  public boolean isCellEditable(int row, int col) {
    if(col == 0) return false;
    else return true;
  }
  
  public String getValueAt(int row, int col) {
    Vector<String> v = data.elementAt(row);
    return v.elementAt(col);
  }
  
  public void setValueAt(Object value, int row, int col) {
    Vector<String> v = data.elementAt(row);
    v.setElementAt((String)value, col);
    fireTableCellUpdated(row,col); 
  }
  
  public void setDataTable(String Query){
      final ConnectionDAO d = new ConnectionDAO();
        Connection cn = null;
          try {
          Class.forName("com.mysql.jdbc.Driver");
          cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/Miscele?user=root&password=m4c3nro3");
          SQLPreparedStatement = cn.prepareStatement(Query);
          ResultSet rsQuery = SQLPreparedStatement.executeQuery();
          ResultSetMetaData rsmt = rsQuery.getMetaData();
          int column = rsmt.getColumnCount();
          for(int i=1;i<=column;i++){
              columnName.add(rsmt.getColumnName(i));
          }
          while(rsQuery.next()){
              Vector row = new Vector(column);
              for(int i=1;i<=column;i++){
                  row.addElement(rsQuery.getObject(i));
              }
              data.add(row);
          }
          cn.close();
          }catch(Exception e){
          }
  }
  
}