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

Messages postés
4
Date d'inscription
mardi 24 mai 2005
Dernière intervention
13 mars 2009
- 20 févr. 2009 à 02:21 - Dernière réponse :
Messages postés
1
Date d'inscription
dimanche 7 février 2010
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 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
493
Date d'inscription
samedi 20 mai 2006
Dernière intervention
15 juillet 2012
- 20 févr. 2009 à 07:48
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;
    }
}

Merci uhrand 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 86 internautes ce mois-ci

Commenter la réponse de uhrand
Messages postés
4
Date d'inscription
mardi 24 mai 2005
Dernière intervention
13 mars 2009
- 20 févr. 2009 à 12:30
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
Dernière intervention
18 juin 2010
- 18 juin 2010 à 10:41
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.