java swing中實(shí)現(xiàn)拖拽功能示例
java實(shí)現(xiàn)拖拽示例
Swing中實(shí)現(xiàn)拖拽功能,代碼很簡(jiǎ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.*;
/**
* 最簡(jiǎn)單的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("最簡(jiǎn)單的拖拽示例:拖拽文件到下面(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)文章
java自定義切面增強(qiáng)方式(關(guān)于自定義注解aop)
這篇文章主要介紹了java自定義切面增強(qiáng)方式(關(guān)于自定義注解aop),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04Maven?繼承父工程時(shí)的relativePath標(biāo)簽詳細(xì)解析
這篇文章主要介紹了Maven?繼承父工程時(shí)的relativePath標(biāo)簽解析,通過本文學(xué)習(xí)你需要注意子模塊想要用父模塊pom中的版本,請(qǐng)注意配置relativePath屬性,需要的朋友可以參考下2022-12-12Java基礎(chǔ)之?dāng)?shù)組超詳細(xì)知識(shí)總結(jié)
這篇文章主要介紹了Java基礎(chǔ)之?dāng)?shù)組詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java基礎(chǔ)的小伙伴們有很好的幫助,需要的朋友可以參考下2021-05-05Java數(shù)組常見應(yīng)用詳解【創(chuàng)建、遍歷、排序、查找】
這篇文章主要介紹了Java數(shù)組常見應(yīng)用,結(jié)合實(shí)例形式詳細(xì)分析了java數(shù)組的基本定義、創(chuàng)建、遍歷、排序、查找等相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2020-02-02springboot使用war包部署到外部tomcat過程解析
這篇文章主要介紹了springboot使用war包部署到外部tomcat過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01Java實(shí)現(xiàn)給微信群中定時(shí)推送消息
這篇文章主要為大家詳細(xì)介紹了Java如何實(shí)現(xiàn)給微信群中定時(shí)推送消息的功能,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,需要的可以了解一下2022-12-12Java版C語言版簡(jiǎn)單使用靜態(tài)語言實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的方法
本文給大家分享java版和C語言版簡(jiǎn)單使用靜態(tài)語言實(shí)現(xiàn)動(dòng)態(tài)數(shù)組的方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-10-10