源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java swing中实现拖拽功能示例

  • 时间:2020-01-28 13:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java swing中实现拖拽功能示例
java实现拖拽示例 [img]http://files.jb51.net/file_images/article/201404/20140429104713.png?2014329104745[/img] Swing中实现拖拽功能,代码很简单,都有注释,自己看,运行效果如下图:
[u]复制代码[/u] 代码如下:
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();                 }             }         });     } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部