Visualizzazione dei risultati da 1 a 9 su 9

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2013
    Messaggi
    5
    Tabella.getModel().addTableModelListener(new TableModelListener() {

    codice:
                @Override
                public void tableChanged(TableModelEvent e) {
                    
                    int col = e.getColumn(); 
                    int row = e.getFirstRow(); 
                    String ValoreInserito = Tabella.getValueAt(row,col).toString();
                    float Valore = Float.parseFloat(ValoreInserito);
                
                    int i = d.TotRow(Query);
                    for(int k=0;k<i;k++){
                    Object Obj = Tabella.getValueAt(k,e.getColumn());
                    float ValoreDaCambiare = Float.parseFloat(String.valueOf(Obj));
    
    
                    if(ValoreDaCambiare != Valore){
                           ….   // operazione con cui verra poi cambiato il valore delle altre celle
                           Obj = String.valueOf(ValoreDaCambiare);
                           Tabella.setValueAt(Obj, k, e.getColumn());
                    }  
                    }
                }
            });
    Questo è il pezzo di codice incriminato Essendo la prima volta che mi trovo di fronte a una cosa del genere è molto probabile che sia completamente sbagliata come logica.
    Il problema comunque non sta nel fatto di prevalere il valore della cella editata come vedi, ma piuttosto riuscire e effettuare l'operazione sui valori delle altre celle e successivamente modificare i vecchi
    Ultima modifica di LeleFT; 11-11-2013 a 19:18 Motivo: Inserimento tag CODE

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da finkgud Visualizza il messaggio
    Essendo la prima volta che mi trovo di fronte a una cosa del genere è molto probabile che sia completamente sbagliata come logica.
    Il problema comunque non sta nel fatto di prevalere il valore della cella editata come vedi, ma piuttosto riuscire e effettuare l'operazione sui valori delle altre celle e successivamente modificare i vecchi
    Il punto è che bisognerebbe capire meglio la logica del tuo aggiornamento dei valori.
    È meglio che faccio un esempio, per chiarire, altrimenti potresti non afferrare la mia questione che ho posto: immagina di avere una tabella in cui in ogni riga gestisci dei "prodotti" con prezzo, quantità e totale. Una cosa del tipo:
    prodotto1 | prezzo1 | quantità1 | totale1
    prodotto2 | prezzo2 | quantità2 | totale2

    Immagina di voler fare in modo che se l'utente varia il campo della quantità (potrebbe essere un textfield numerico o un combobox ... non ha importanza) su una riga, vuoi aggiornare la quantità E anche il totale (come prezzo x quantità). Una logica del genere è più appropriato farla dentro il table model, che dovrebbe essere "custom" ovvero sviluppato ad hoc.

    Gestire un TableModelListener in genere è più critico. Innanzitutto bisognerebbe testare e/o gestire i vari tipi di cambiamenti che TableModelEvent può notificare. Inoltre se non si sta attenti è possibile che la gestione vada in "loop", perché una modifica del model fa causare un ulteriore tableChanged.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.