Prochaine révision | Révision précédente |
informatique:java:tips:drag_drop [04/06/2011 02:03] – créée cyrille | informatique:java:tips:drag_drop [19/05/2012 00:19] (Version actuelle) – modification externe 127.0.0.1 |
---|
| |
====== Essais ====== | ====== Essais ====== |
| |
Avec Linux XUbuntu: Drag d'un fichier depuis le gestionnaire de fichier Thunar vers un JTextField. | |
| |
Dans la méthode canImport() du javax.swing.TransferHandler voici les DataFlavor obtenus (support.getDataFlavors()): | Dans la méthode canImport() du javax.swing.TransferHandler voici les DataFlavor obtenus (support.getDataFlavors()): |
<code java> | <code java> |
for (java.awt.datatransfer.DataFlavor df : support.getDataFlavors()) { | for (java.awt.datatransfer.DataFlavor df : support.getDataFlavors()) { |
System.out.println("canImport() DataFlavor: " + df.getHumanPresentableName() + ", " + df.getMimeType() + ", " + df.getDefaultRepresentationClassAsString()); | System.out.println(df.getHumanPresentableName() + " - " + df.getMimeType()+" - "+df.getSubType() + " - " + df.getDefaultRepresentationClassAsString()); |
} | } |
</code> | </code> |
Avec un fichier "Text": | |
| ===== Linux XUbuntu ===== |
| |
| Avec Linux XUbuntu: Drag d'un fichier depuis le gestionnaire de fichier Thunar vers un JTextField. Quelque soit le type de fichier ("Text", "Png") l'appel à support.getDataFlavors() donne : |
| <code> |
| text/uri-list - text/uri-list; class=java.io.Reader; charset=Unicode - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.lang.String; charset=Unicode - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.nio.CharBuffer; charset=Unicode - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class="[C"; charset=Unicode - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.io.InputStream; charset=UTF-16 - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.nio.ByteBuffer; charset=UTF-16 - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class="[B"; charset=UTF-16 - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.io.InputStream; charset=UTF-8 - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.nio.ByteBuffer; charset=UTF-8 - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class="[B"; charset=UTF-8 - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.io.InputStream; charset=UTF-16BE - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.nio.ByteBuffer; charset=UTF-16BE - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class="[B"; charset=UTF-16BE - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.io.InputStream; charset=UTF-16LE - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.nio.ByteBuffer; charset=UTF-16LE - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class="[B"; charset=UTF-16LE - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.io.InputStream; charset=ISO-8859-1 - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.nio.ByteBuffer; charset=ISO-8859-1 - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class="[B"; charset=ISO-8859-1 - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.io.InputStream; charset=US-ASCII - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class=java.nio.ByteBuffer; charset=US-ASCII - uri-list - java.io.InputStream |
| text/uri-list - text/uri-list; class="[B"; charset=US-ASCII - uri-list - java.io.InputStream |
| </code> |
| |
| Et l'appel à DataFlavor.selectBestTextFlavor() |
| <code java> |
| java.awt.datatransfer.DataFlavor df = java.awt.datatransfer.DataFlavor.selectBestTextFlavor(support.getDataFlavors()) ; |
| System.out.println(df.getHumanPresentableName() + " - " + df.getMimeType()+" - "+df.getSubType() + " - " + df.getDefaultRepresentationClassAsString()); |
| </code> |
| donne: |
| <code> |
| text/uri-list - text/uri-list; class=java.io.Reader; charset=Unicode - uri-list - java.io.InputStream |
| </code> |
| |
| ===== Windows XP ===== |
| |
| Avec Windows l'appel à support.getDataFlavors() donne: |
| <code> |
| application/x-java-file-list - application/x-java-file-list; class=java.util.List - x-java-file-list - java.io.InputStream |
| </code> |
| |
| Et l'appel ) DataFlavor.selectBestTextFlavor() donne: |
<code> | <code> |
text/uri-list, text/uri-list; class=java.io.Reader; charset=Unicode, uri-list, java.io.InputStream | NULL |
text/uri-list, text/uri-list; class=java.lang.String; charset=Unicode, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.nio.CharBuffer; charset=Unicode, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class="[C"; charset=Unicode, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.io.InputStream; charset=UTF-16, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.nio.ByteBuffer; charset=UTF-16, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class="[B"; charset=UTF-16, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.io.InputStream; charset=UTF-8, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.nio.ByteBuffer; charset=UTF-8, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class="[B"; charset=UTF-8, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.io.InputStream; charset=UTF-16BE, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.nio.ByteBuffer; charset=UTF-16BE, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class="[B"; charset=UTF-16BE, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.io.InputStream; charset=UTF-16LE, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.nio.ByteBuffer; charset=UTF-16LE, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class="[B"; charset=UTF-16LE, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.io.InputStream; charset=ISO-8859-1, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.nio.ByteBuffer; charset=ISO-8859-1, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class="[B"; charset=ISO-8859-1, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.io.InputStream; charset=US-ASCII, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class=java.nio.ByteBuffer; charset=US-ASCII, uri-list, java.io.InputStream | |
text/uri-list, text/uri-list; class="[B"; charset=US-ASCII, uri-list, java.io.InputStream | |
</code> | </code> |
| |