java swing中实现拖拽功能示例
java swing中实现拖拽功能示例
发布时间:2017-01-07 来源:查字典编辑
摘要:java实现拖拽示例Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图:复制代码代码如下:packagecom;impo...

java实现拖拽示例

java swing中实现拖拽功能示例1

Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图:

复制代码 代码如下:

package com;

import java.awt.*;

import java.awt.datatransfer.DataFlavor;

import java.awt.dnd.DnDConstants;

import java.awt.dnd.DropTarget;

import java.awt.dnd.DropTargetAdapter;

import java.awt.dnd.DropTargetDropEvent;

import java.io.File;

import java.util.List;

import javax.swing.*;

/**

* 最简单的Java拖拽代码示例

* @author 刘显安

* 2013年1月24日

*/

public class DragTest extends JFrame

{

JPanel panel;//要接受拖拽的面板

public DragTest()

{

panel = new JPanel();

panel.setBackground(Color.YELLOW);

getContentPane().add(panel, BorderLayout.CENTER);

setSize(500, 200);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setLocation(400, 200);

setTitle("最简单的拖拽示例:拖拽文件到下面(20130124)");

drag();//启用拖拽

}

public static void main(String[] args) throws Exception

{

UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");//设置皮肤

new DragTest().setVisible(true);;

}

public void drag()//定义的拖拽方法

{

//panel表示要接受拖拽的控件

new DropTarget(panel, DnDConstants.ACTION_COPY_OR_MOVE, new DropTargetAdapter()

{

@Override

public void drop(DropTargetDropEvent dtde)//重写适配器的drop方法

{

try

{

if (dtde.isDataFlavorSupported(DataFlavor.javaFileListFlavor))//如果拖入的文件格式受支持

{

dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);//接收拖拽来的数据

List<File> list = (List<File>) (dtde.getTransferable().getTransferData(DataFlavor.javaFileListFlavor));

String temp="";

for(File file:list)

temp+=file.getAbsolutePath()+";n";

JOptionPane.showMessageDialog(null, temp);

dtde.dropComplete(true);//指示拖拽操作已完成

}

else

{

dtde.rejectDrop();//否则拒绝拖拽来的数据

}

}

catch (Exception e)

{

e.printStackTrace();

}

}

});

}

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新Java学习
热门Java学习
编程开发子分类