java swing中实现拖拽功能示例
时间:2023-09-15 11:46:42
java实现拖拽示例
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();
}
}
});
}
}
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Android自定义View绘图实现渐隐动画
![](https://img.aspxhome.com/file/2023/2/139092_0s.gif)
C#中Span相关的性能优化建议
![](https://img.aspxhome.com/file/2023/7/69817_0s.png)
Python基于pyjnius库实现访问java类
springboot+mybatis+枚举处理器的实现
SpringBoot新手入门的快速教程
![](https://img.aspxhome.com/file/2023/3/75413_0s.jpg)
Android AIDL实现两个APP间的跨进程通信实例
![](https://img.aspxhome.com/file/2023/4/137244_0s.png)
Java链表(Linked List)基本原理与实现方法入门示例
![](https://img.aspxhome.com/file/2023/4/60824_0s.png)
Android软键盘挡住输入框的终极解决方案
![](https://img.aspxhome.com/file/2023/4/117164_0s.png)
Java枚举类用法实例
Flutter实现顶部导航栏功能
![](https://img.aspxhome.com/file/2023/2/130442_0s.jpg)
springboot注册bean的三种方法
java实现银行管理系统
springboot读取application.yaml文件数据的方法
![](https://img.aspxhome.com/file/2023/6/63086_0s.jpg)
Android抓取CSDN首页极客头条内容完整实例
![](https://img.aspxhome.com/file/2023/8/120068_0s.png)
Flutter学习之实现自定义themes详解
Android基于ViewPager实现的应用欢迎界面完整实例
Unity 如何获取鼠标停留位置下的物体
JAVA多线程之实现用户任务排队并预估排队时长
![](https://img.aspxhome.com/file/2023/1/80941_0s.gif)
Android中NestedScrolling滑动机制详解
![](https://img.aspxhome.com/file/2023/9/106059_0s.png)