Importation de fichier avec drag & drop [Résolu]

Messages postés
4
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
13 mars 2009
- - Dernière réponse : BeaverKid
Messages postés
1
Date d'inscription
dimanche 7 février 2010
Statut
Membre
Dernière intervention
18 juin 2010
- 18 juin 2010 à 10:41
Bonjour,

je veux faire une importation de fichier vers mon application JAVA depuis mon bureau par exemple en utilisant drag & drop.

j'ai besoin que d'avoir récupérer le chemine complet de ce fichier "absolutePath".

Oui, je peux le récupérer avec Jfilechoose, mais je veux savoir est-il possible avec drag & drop.

Merci d'avance;
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
493
Date d'inscription
samedi 20 mai 2006
Statut
Membre
Dernière intervention
15 juillet 2012
7
3
Merci
Oui, c'est possible avec drag & drop

import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;
import java.util.List;
import javax.swing.*;
import javax.swing.table.*;
public class FileDrop1 extends JPanel {
    private FileTransferHandler1 transferHandler;
    private JTable table;
    public FileDrop1() {
        super(new BorderLayout());
        JPanel dataPanel = new JPanel(new BorderLayout());
        dataPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
        table = new JTable();
        table.setDragEnabled(true);
        table.setModel(new DefaultTableModel(4, 1));
        transferHandler = new FileTransferHandler1(table);
        table.setTransferHandler(transferHandler);
        dataPanel.add(new JScrollPane(table));
        add(dataPanel, BorderLayout.CENTER);
    }
    private static void createAndShowGUI() {
        JFrame frame = new JFrame("File Drop");
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        FileDrop1 fViewer = new FileDrop1();
        frame.setContentPane(fViewer);
        frame.setVisible(true);
        frame.setSize(800, 600);
    }
    public static void main(final String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                createAndShowGUI();
            }
        });
    }
}
class FileTransferHandler1 extends TransferHandler {
    private DataFlavor fileFlavor;
    private JTable table;
    FileTransferHandler1(final JTable list) {
        this.table = list;
        fileFlavor = DataFlavor.javaFileListFlavor;
    }
    @Override
    public boolean importData(final JComponent c, final Transferable t) {
        if (!canImport(c, t.getTransferDataFlavors())) {
            return false;
        }
        try {
            if (hasFileFlavor(t.getTransferDataFlavors())) {
                final List files = (List) t.getTransferData(fileFlavor);
                final DefaultTableModel model = (DefaultTableModel) table.getModel();
                final File file = (File) files.get(0);
                int row = table.getSelectedRow();
                int column = table.getSelectedColumn();
                model.setValueAt(file.getPath(), row, column);
                return true;
            }
        } catch (final UnsupportedFlavorException ufe) {
            System.out.println("importData: unsupported data flavor");
        } catch (final IOException ioe) {
            System.out.println("importData: I/O exception");
        }
        return false;
    }
    @Override
    public boolean canImport(final JComponent c, final DataFlavor[] flavors) {
        return hasFileFlavor(flavors);
    }
    private boolean hasFileFlavor(final DataFlavor[] flavors) {
        for (int i = 0; i < flavors.length; i++) {
            if (fileFlavor.equals(flavors[i])) {
                return true;
            }
        }
        return false;
    }
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de uhrand
Messages postés
4
Date d'inscription
mardi 24 mai 2005
Statut
Membre
Dernière intervention
13 mars 2009
0
Merci
Merci Beaucoup, ça marche très bien
Commenter la réponse de cs_laakelm
Messages postés
1
Date d'inscription
dimanche 7 février 2010
Statut
Membre
Dernière intervention
18 juin 2010
0
Merci
Je souheterais faire tourner cette exemple, j'ai besoin d'aide :

-Je peus utilise eclipse ?
-c'est bien du Java EE ?

-la console de eclipse me sort ca :

java.lang.NoClassDefFoundError: sdz1
Caused by: java.lang.ClassNotFoundException: sdz1
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Exception in thread "main"


Merci pour votre aide et votre soutien.
Commenter la réponse de BeaverKid