相关疑难解决方法(0)

拖放JDK1.6和JDK1.7之间的差异

有没有人知道JDK1.6和JDK1.7之间的拖放行为的差异?将URL从浏览器拖放到需要支持JDK1.5,JDK1.6和JDK1.7的应用程序时,我遇到了不同(如下图所示).我现在想知道是否存在其他差异以及是否在某处记录了这些差异.

我遇到的不同行为是通过点击并拖动URL到Java应用程序来拖放来自浏览器(而不是来自地址栏但来自页面)的URL.在JDK1.6上,Transferable不支持它DataFlavor.javaFileListFlavor和它在JDK1.7上(尽管在请求它​​的传输数据时你得到一个空列表).以下代码说明了该问题.它打开一个JFrame可以拖放URL,如http://www.google.com,并打印出是否使用文件列表风格或URI列表风格

import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.TransferHandler;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.io.File;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

public class DragAndDropTester {
  private static DataFlavor URI_LIST_FLAVOR = null;

  static {
    try {
      URI_LIST_FLAVOR = new DataFlavor( "text/uri-list;class=java.lang.String" );
    }
    catch ( ClassNotFoundException ignore ) {
    }
  }
  public static void main( String[] args ) {
    try {
      EventQueue.invokeAndWait( new Runnable() {
        public …
Run Code Online (Sandbox Code Playgroud)

java swing drag-and-drop java-7

7
推荐指数
1
解决办法
3526
查看次数

标签 统计

drag-and-drop ×1

java ×1

java-7 ×1

swing ×1