J'utilise le code suivant que j'ai trouvé (How can I use Drag-and-Drop in Swing to get file path? de Abika) pour faire glisser-déposer:@SuppressWarnings (« sans contrôle ») ne fonctionne pas avec le glisser-déposer
final class FileDropHandler extends TransferHandler {
@Override
public boolean canImport(TransferHandler.TransferSupport support) {
for (DataFlavor flavor : support.getDataFlavors()) {
if (flavor.isFlavorJavaFileListType()) {
return true;
}
}
return false;
}
@Override
@SuppressWarnings("unchecked")
public boolean importData(TransferHandler.TransferSupport support) {
if (!this.canImport(support))
return false;
List<File> files;
try {
files = (List<File>) support.getTransferable()
.getTransferData(DataFlavor.javaFileListFlavor);
} catch (UnsupportedFlavorException | IOException ex) {
// should never happen (or JDK is buggy)
return false;
}
for (File file: files) {
// do something...
}
return true;
}
}
Le gestionnaire est ensuite ajouté à un composant.
Mais le problème est que, malgré les « @SuppressWarnings (» sans contrôle «) », je reçois une erreur:
The type List is not generic; it cannot be parameterized with arguments < File>
Quelqu'un peut-il me dire quel est le problème ici? Cela semble si simple. Merci
Impossible de reproduire. Peut-être que vous avez une autre classe appelée List? – assylias
s'il vous plaît ajouter vos importations. Je suppose que la classe 'List' que vous avez ne vient pas de' java.util' – QBrute