Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    47

    Drag & Drop controllo file esistente

    Salve a tutti, scrivo l'ennesimo post relativo al Drag&Drop perchè sfortunatamente ancora non riesco a saltarci fuori. Dato il seguente codice:
    codice:
    public void drop(DropTargetDropEvent dtde) 
    {
    
    
        Transferable obj = dtde.getTransferable();
        DataFlavor[] data = obj.getTransferDataFlavors();
    
    
        for (int i = 0; i < data.length; i++) 
        {
            if (data[i].isFlavorJavaFileListType()) 
            {
                dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
                try {
    
    
                    java.util.List list = (java.util.List) obj.getTransferData(data[i]);
    
    
    
    
                    for(int j=0; j < list.size(); j++)
                    {
                        File file = (File) list.get(j);
                        if (m_attachment.addEntry(file))
                        {
                         (...)
                             //aggiungo il file dentro una combobox
    
    
                            if(file.exists())
                            {
                                int returnVal = JOptionPane.showConfirmDialog(this, "The file" + file + "already exists!\nDo you want to replace it?", 
                                        "File exists", JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
                                if (returnVal != JOptionPane.OK_OPTION) 
                                {
                                    return;
                                }
                                else
                                {
                                    (..)
                                }
                            }
                        }
                    }
                } catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
        }
    }
    Le parti mancanti inseriscono i file trascinati un combobox. Il problema è che: if(file.exists()) mi fa comparire sempre il messaggio di errore, poichè tale comando si attiva ogni volta che si rilascia un file... Una possibile soluzione, secondo la mia ignoranza, sarebbe di comparare i file.path(). Il problema è che io ho solo il file path del file che trascino e che dico di aggiungere alla combobox.add(file.getName()). Come faccio a risolvere il problema? Non riesco veramente a risolvere tale problema

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da main_001 Visualizza il messaggio
    Il problema è che: if(file.exists()) mi fa comparire sempre il messaggio di errore, poichè tale comando si attiva ogni volta che si rilascia un file...
    Se ho capito bene, se vuoi che il messaggio compaia solo quando viene droppato un file già esistente nel combobox .... allora è chiaro che devi andare a verificare se il pathname esiste già nel combobox ... non che il file fisicamente esiste!
    E questo controllo, tra l'altro, andrebbe fatto prima di aggiungere nella combobox.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    47
    sisi hai capito bene il problema che non riesco a farla funzionare a livello di implementazione

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    47
    Potresti scrivermi il codice per favore è davvero importante e sono quattro giorni che ci sto sopra. Non ci riesco proprio da sola. Se puoi farmi questo favore te ne sarei molto grata. Grazie

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da main_001 Visualizza il messaggio
    Potresti scrivermi il codice per favore è davvero importante e sono quattro giorni che ci sto sopra. Non ci riesco proprio da sola. Se puoi farmi questo favore te ne sarei molto grata. Grazie
    Non c'è molto da scrivere .... tu hai un java.io.File "droppato" (insomma, ciascuno di quelli nella lista), devi andare a vedere se esiste già nel combobox. JComboBox ha getItemCount()/getItemAt(int index) (puoi anche andare direttamente sul ComboBoxModel che ha getSize/getElementAt). Semplicemente scansioni gli oggetti nel combobox e se uno è "uguale" (nel senso di equals() ... NON di ==) a quello droppato, allora è già presente. Tutto qui.
    Sono poche righe in croce, per evitare di appesantire quel tuo drop che già mi pare un po' lunghetto, meglio se fai un metodo a parte che ti restituisce true se il File è nel combobox.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Fra l'altro dici che vuoi imparare...
    ma come fai ad imparare se vai a scopiazzare dal web senza neanche accertarti che ciò che hai funzioni
    http://stackoverflow.com/questions/3...uplicate-files

    questa istruzione qua
    codice:
     if (m_attachment.addEntry(file))
    mi puoi spiegare cosa è la variabile m_attachment ?

    credo che non sia una metodo di "sistema".
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2014
    Messaggi
    47
    Magari non è scopiazzare ma è sempre la stessa persona. Comunque forse il tuo commento non è stato così acido ho quasi risolto il bug. Grazie ☺

  8. #8
    Scusami.
    non avevo notato la data.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

Tag per questa discussione

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.