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

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

Répondre au sujet
uhrand 493 Messages postés samedi 20 mai 2006Date d'inscription 15 juillet 2012 Dernière intervention - 20 févr. 2009 à 07:48
+3
Utile
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;
    }
}
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de uhrand
cs_laakelm 4 Messages postés mardi 24 mai 2005Date d'inscription 13 mars 2009 Dernière intervention - 20 févr. 2009 à 12:30
0
Utile
Merci Beaucoup, ça marche très bien
Commenter la réponse de cs_laakelm
BeaverKid 1 Messages postés dimanche 7 février 2010Date d'inscription 18 juin 2010 Dernière intervention - 18 juin 2010 à 10:41
0
Utile
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.