java swing中实现拖拽功能示例

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();                }            }        });    }}

以上是 java swing中实现拖拽功能示例 的全部内容, 来源链接: utcz.com/p/206885.html

回到顶部