Ich bin mir nicht sicher, ob ich das Prinzip der DataFlavors richtig verstanden habe, aber wie kann ich eigentlich den DataFlavor einer JComponent setzen? Jedes Mal, wenn ich rufen Sie die getDataFlavor Methode der Ausgang ist dies:Wie legt man den DataFlavor einer Komponente fest?
java.awt.datatransfer.DataFlavor[mimetype=application/x-java-file-list;representationclass=java.util.List]
Mein Problem ist, dass ich Bilder von dem Desktop oder an jedem anderen Ort direkt in meine JPanel ziehen möchten. Es funktioniert durch den DataFlavor.javaFileListFlavor, aber gibt es keine Möglichkeit, dass ich einen benutzerdefinierten Flavor erstellen kann, der zum Beispiel nur PNG- und JPG-Dateien akzeptiert? (Ich weiß, dass es tatsächlich möglich ist, benutzerdefinierte Flavors zu erstellen, aber ich habe keine Ahnung, wie ich die neu erstellten Flavors für meine Komponenten "aktivieren" kann)
Oder gibt es eine Möglichkeit, sicherzustellen, ob das eingezogene Item ist PNG oder JPG mit dem javaFileListFlavor?
Ich hoffe, dass ich gut genug, um meine Frage erklären könnte (ich bin nicht ein Meister dieser Sprache, aber ich versuche mein Bestes;))
Wie werden Sie die TransferHandler Komponenten Handling? –
Ich bin nicht am PC atm, aber ich habe nur eine Klasse, die TransferHandler erweitert und überschreibt die CanImport (...) und die ImportData (...) -Methode. Der canImport ist ein Liner und gibt nur wahr zurück (Weil ich nicht weiß, wie man die übertragenen Daten erhält), die ImportData Funktion erhält jedoch das Übertragbare und durch den dataFlavor konnte ich eine Liste von Dateien erstellen, die dann die Datei enthält mein Bild bei Index 0, wenn der Drop erfolgreich ist. Danach fügen ich den transferHandler durch die setTransferHandler() Methode meines Panels hinzu –