java swing中實(shí)現(xiàn)拖拽功能示例
java實(shí)現(xiàn)拖拽示例
Swing中實(shí)現(xiàn)拖拽功能,代碼很簡單,都有注釋,自己看,運(yùn)行效果如下圖:
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");//設(shè)置皮膚
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);//接收拖拽來的數(shù)據(jù)
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();//否則拒絕拖拽來的數(shù)據(jù)
}
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
}
相關(guān)文章
SpringMVC框架使用jackson封裝數(shù)據(jù)過程中遇到的問題及解決
這篇文章主要介紹了SpringMVC框架使用jackson封裝數(shù)據(jù)過程中遇到的問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07
Java判斷多個(gè)時(shí)間段是否重合的方法小結(jié)
這篇文章主要為大家詳細(xì)介紹了Java中判斷多個(gè)時(shí)間段是否重合的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02
SpringBoot+Mybatis分頁插件PageHelper實(shí)現(xiàn)分頁效果
這篇文章主要介紹了SpringBoot+Mybatis實(shí)現(xiàn)分頁效果,本案例是采用Mybatis分頁插件PageHelper實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11
jpa異常No entity found for query問題解決
這篇文章主要為大家介紹了jpa異常之No entity found for query的異常問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
使用SpringEvent解決WebUploader大文件上傳解耦問題
Spring Event是Spring框架內(nèi)建的一種發(fā)布/訂閱模式的實(shí)現(xiàn),它允許應(yīng)用內(nèi)部不同組件之間通過事件進(jìn)行通信,本文以WebUploader大文件上傳組件為例,在大文件處理的場景中使用SpringEvent的事件發(fā)布機(jī)制,靈活的擴(kuò)展對文件的處理需求,需要的朋友可以參考下2024-07-07
基于Java實(shí)現(xiàn)Redis多級緩存方案
這篇文章主要介紹了Redis多級緩存方案分享,傳統(tǒng)緩存方案、多級緩存方案、JVM本地緩存,舉例說明這些方案,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-03-03

