Visualizzazione dei risultati da 1 a 1 su 1
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    442

    [Jlist] Metodo che non fa quello che dovrebbe

    Sono ore che sto impazzendo a cercare di capire cosa non va in questo metodo, ma non ci riesco. Praticamente invece di eliminarmi il prodotto selezionato mi elimina sempre l'ultimo che vedo nella lista. Ho usato una logica simile per l'eliminazione dei menu e funziona bene. Non riesco proprio a capire anche perché mi sembra che ieri funzionava... o forse non ho controllato tutti i possibili scenari boh... in effetti ho modificato qualcosa per risolvere un piccolo problema, ma non mi pare sia qualcosa che potesse influenzare questa parte. La differenza fra la lista dei prodotti e quella dei menu è che quella dei prodotti viene caricata solo quando si seleziona un menu mentre quella dei menu viene inizializzata all'apertura della maschera. L'eliminazione del prodotto avviene tramite l'id del prodotto che viene estratto dalla lista di oggetti prodotto.
    Confido in un vostro occhio più arguto...Grazie!

    codice:
        private void bDeleteProdActionPerformed(java.awt.event.ActionEvent evt) {                                            
            Product selectedProduct = (Product) productList.getSelectedValue();
            selectedProduct.getProductId();
            int index = productList.getSelectedIndex();
            int result = DBConnection.deleteProduct(selectedProduct);
            int size = modelProductList.getSize();
            if (size == 0) { //Non sono rimasti prodotti nella lista, disabilito Elimina Prodotti
                bDeleteProd.setEnabled(false);
            } else {
                if (index == modelProductList.getSize()) {
                    index--;
                }
                productList.setSelectedIndex(index);
                productList.ensureIndexIsVisible(index);
            }
            
            if (result == 1) {
                //se la rimozione e' andata a buon fine ricarico la lista prodotti
                reloadProductList();
                productName.setText("");
                productPrice.setText("");
                bNewProduct.setEnabled(true);
            }
        }
    Questo è il metodo che ascolta i cambiamenti di selezione sulla lista prodotti:

    codice:
    private void productListValueChanged(javax.swing.event.ListSelectionEvent evt) {                                         
            int index = productList.getSelectedIndex();
            if (index >= 0) {
                Product selectedProduct = (Product) productList.getSelectedValue();
                productName.setText(selectedProduct.getProductName());
                selectedProduct = (Product) productList.getSelectedValue();
                productPrice.setText("" + selectedProduct.getProductPrice());
                bNewProduct.setEnabled(true);
            } else {
                bDeleteProd.setEnabled(false);
            }
            bDeleteProd.setEnabled(true);
        }
    EDIT: ho capito...non so come mai ma di solito nel momento in cui posto la richiesta qua dopo 5 minuti mi viene l'illuminazione La cosa incredibile è che pochi giorni fa avevo fatto lo stesso identico errore e l'avevo pure risolto. Il problema stava nel fatto che productId era static :-| Eppure sono sicura che ieri funzionava...tuttavia ho fa tto dei passaggi di file fra un pc e l'altro e potrebbe darsi che mi sono trascita dietro una classe non aggiornata
    Ultima modifica di Jamie04; 16-04-2014 a 11:47

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 © 2025 vBulletin Solutions, Inc. All rights reserved.