博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实现最简单的拖拽代码示例
阅读量:6243 次
发布时间:2019-06-22

本文共 2181 字,大约阅读时间需要 7 分钟。

如题,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
list = (List
) (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(); } } }); }}

 

转载地址:http://uisia.baihongyu.com/

你可能感兴趣的文章
VCS双机+oracle 11gR2+ASM主机名修改
查看>>
转:// LINUX下为ORACLE数据库设置大页--hugepage
查看>>
Linux文件权限与属性详解 之 chattr & lsattr
查看>>
负载均衡集群之LVS配置命令
查看>>
PHP使用文件流下载文件方法(附:解决下载文件内容乱码问题)
查看>>
多线程编程
查看>>
再谈谈数学
查看>>
Scheme来实现八皇后问题(1)
查看>>
pip或者anacnda安装opencv以及opencv-contrib
查看>>
Unity 5 中的全局光照技术详解(建议收藏)
查看>>
python 的矩阵运算——numpy
查看>>
处理handler中的内存泄漏
查看>>
P8 Visible Lattice Points
查看>>
小小不爽一下
查看>>
【转】NuGet学习笔记(1)——初识NuGet及快速安装使用
查看>>
Python学习笔记 - MySql的使用
查看>>
WebApi FormData+文件长传 异步+同步实现
查看>>
Linux文件与目录管理
查看>>
多态的弊端
查看>>
Spring @Import 注解
查看>>