精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Java Swing編程:拖放功能

開發 后端
拖放功能其實就像我們使用windows 的時候按住CTRL然后拖動某個圖標,會復制該對象。這給用戶提供了很棒的用戶體驗,沒辦法程序員總是給自己找麻煩,讓用戶覺得方便,其實這個功能AWT也提供了Swing話只是利用了這個,因為這和界面沒什么關系。

拖放功能其實就像我們使用windows 的時候按住CTRL然后拖動某個圖標,會復制該對象。這給用戶提供了很棒的用戶體驗,沒辦法程序員總是給自己找麻煩,讓用戶覺得方便,其實這個功能AWT也提供了Swing話只是利用了這個,因為這和界面沒什么關系。

DropTarget(拖放目的地)eg(將圖片拖入后顯示):

  1. public class TestDropTarget  
  2. {  
  3.     final int DESKTOP_WIDTH = 480;  
  4.     final int DESKTOP_HEIGHT = 360;  
  5.     final int FRAME_DISTANCE = 30;  
  6.     JFrame jf = new JFrame("測試拖放目標——把圖片文件拖入該窗口");  
  7.     //定義一個虛擬桌面  
  8.     private JDesktopPane desktop = new JDesktopPane();  
  9.     //保存下一個內部窗口的座標點  
  10.     private int nextFrameX;  
  11.     private int nextFrameY;  
  12.     //定義內部窗口為虛擬桌面的1/2大小  
  13.     private int width = DESKTOP_WIDTH / 2;  
  14.     private int height = DESKTOP_HEIGHT / 2;  
  15.  
  16.     public void init()  
  17.     {  
  18.         desktop.setPreferredSize(new Dimension(DESKTOP_WIDTH, DESKTOP_HEIGHT));  
  19.         //將當前窗口創建成拖放源  
  20.         new DropTarget(jf, DnDConstants.ACTION_COPY ,  new ImageDropTargetListener());  
  21.         jf.add(desktop);  
  22.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  23.         jf.pack();  
  24.         jf.setVisible(true);  
  25.     }  
  26.  
  27.     class ImageDropTargetListener extends DropTargetAdapter  
  28.     {  
  29.         public void drop(DropTargetDropEvent event)  
  30.         {  
  31.             //接受復制操作  
  32.             event.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);  
  33.             //獲取拖放的內容  
  34.             Transferable transferable = event.getTransferable();  
  35.             DataFlavor[] flavors = transferable.getTransferDataFlavors();  
  36.             //遍歷拖放內容里的所有數據格式  
  37.             for (int i = 0; i < flavors.length; i++)  
  38.             {    
  39.                 DataFlavor d = flavors[i];  
  40.                 try 
  41.                 {  
  42.                     //如果拖放內容的數據格式是文件列表  
  43.                     if (d.equals(DataFlavor.javaFileListFlavor))  
  44.                     {  
  45.                         //取出拖放操作里的文件列表  
  46.                         java.util.List fileList   
  47.                             = (java.util.List) transferable.getTransferData(d);  
  48.                         for (Object f : fileList)  
  49.                         {  
  50.                             //顯示每個文件  
  51.                             showImage((File)f , event);  
  52.                         }  
  53.                     }  
  54.                 }  
  55.                 catch (Exception e)  
  56.                 {    
  57.                     e.printStackTrace();  
  58.                 }  
  59.                 //強制拖放操作結束,停止阻塞拖放源  
  60.                 event.dropComplete(true);  
  61.             }  
  62.         }  
  63.         //顯示每個文件的工具方法  
  64.         private void showImage(File f , DropTargetDropEvent event)throws java.io.IOException  
  65.         {  
  66.             Image image = ImageIO.read(f);  
  67.             if (image == null)  
  68.             {  
  69.                 //強制拖放操作結束,停止阻塞拖放源  
  70.                 event.dropComplete(true);  
  71.                 JOptionPane.showInternalMessageDialog(desktop , "系統不支持這種類型的文件");  
  72.                 //方法返回,不會繼續操作  
  73.                 return;  
  74.             }  
  75.             ImageIcon icon = new ImageIcon(image);  
  76.             //創建內部窗口顯示該圖片  
  77.             JInternalFrame iframe = new JInternalFrame(f.getName()  
  78.                 ,true , true , true , true);  
  79.             JLabel imageLabel = new JLabel(icon);  
  80.             iframe.add(new JScrollPane(imageLabel));  
  81.             desktop.add(iframe);  
  82.             //設置內部窗口的原始位置(內部窗口默認大小是0X0,放在0,0位置)  
  83.             iframe.reshape(nextFrameX, nextFrameY, width, height);  
  84.             //使該窗口可見,并嘗試選中它  
  85.             iframe.show();  
  86.             //計算下一個內部窗口的位置  
  87.             nextFrameX += FRAME_DISTANCE;  
  88.             nextFrameY += FRAME_DISTANCE;  
  89.             if (nextFrameX + width > desktop.getWidth()) nextFrameX = 0;  
  90.             if (nextFrameY + height > desktop.getHeight()) nextFrameY = 0;  
  91.         }  
  92.     }  
  93.     public static void main(String[] args)  
  94.     {  
  95.         new TestDropTarget().init();  
  96.     }  

DropSource(拖放源)eg(將文字拖入支持拖放的文本編輯器Editplus,Eclipse,idea等。。。記事本,UltraEdit竟然不支持)拖放源主要是要將拖放對象組成Transferable對象

  1. public class TestDragSource  
  2. {  
  3.     JFrame jf = new JFrame("Swing的拖放支持");  
  4.     JLabel srcLabel = new JLabel("AWT的拖放支持./n" 
  5.         +"將該文本域的內容拖入其他程序./n");  
  6.     public void init()  
  7.     {  
  8.         DragSource dragSource = DragSource.getDefaultDragSource();  
  9.         //將srcLabel轉換成拖放源,它能接受復制、移動兩種操作  
  10.         dragSource.createDefaultDragGestureRecognizer(srcLabel,  
  11.             DnDConstants.ACTION_COPY_OR_MOVE, new DragGestureListener()  
  12.             {  
  13.                 public void dragGestureRecognized(DragGestureEvent event)  
  14.                 {    
  15.                     //將JLabel里的文本信息包裝成Transferable對象  
  16.                     String txt = srcLabel.getText();  
  17.                     Transferable transferable = new StringSelection(txt);  
  18.                     //繼續拖放操作,拖放過程中使用手狀光標  
  19.                     event.startDrag(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR),   
  20.                         transferable);  
  21.                 }  
  22.             });  
  23.         jf.add(new JScrollPane(srcLabel));  
  24.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  25.         jf.pack();  
  26.         jf.setVisible(true);  
  27.     }  
  28.     public static void main(String[] args)   
  29.     {  
  30.         new TestDragSource().init();  
  31.     }  

JDK1.4開始對Swing的拖放功能做了簡化,不同組件分別提供了拖放源和拖放目標,這里就講用的最多的文本域,他既能拖入文本,也能將文本拖出,非常方便。

但默認這個功能沒有啟用,要手動調用setDragEnabled方法,使其生效。eg

  1. public class SwingDndSupport  
  2. {  
  3.     JFrame jf = new JFrame("Swing的拖放支持");  
  4.     JTextArea srcTxt = new JTextArea(8 , 30);  
  5.     JTextField jtf = new JTextField(34);  
  6.     public void init()  
  7.     {  
  8.         srcTxt.append("AWT的拖放支持./n");  
  9.         srcTxt.append("將該文本域的內容拖入其他程序./n");  
  10.         //啟動文本域和單行文本框的拖放支持  
  11.         srcTxt.setDragEnabled(true);  
  12.         jtf.setDragEnabled(true);  
  13.         jf.add(new JScrollPane(srcTxt));  
  14.         jf.add(jtf , BorderLayout.SOUTH);  
  15.         jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  16.         jf.pack();  
  17.         jf.setVisible(true);  
  18.     }  
  19.     public static void main(String[] args)   
  20.     {  
  21.         new SwingDndSupport().init();  
  22.     }  

方便吧,今天就講到這里了。

原文鏈接:http://blog.csdn.net/terryzero/article/details/3779252

【編輯推薦】

  1. Java Swing編程:特殊容器
  2. Java Swing編程:基本組件
  3. Java Swing用戶界面設計:序
  4. 用Swing制作精美的圖層疊加圖
  5. 簡述Java圖形用戶界面設計(Swing)
責任編輯:林師授 來源: terryzero的博客
相關推薦

2012-01-17 13:41:34

JavaSwing

2012-01-17 14:05:29

JavaSwing

2012-01-17 14:09:54

JavaSwing

2012-01-17 13:53:16

JavaSwing

2012-01-17 13:16:34

JavaSwing

2009-12-30 10:25:03

Silverlight

2011-06-22 10:20:11

QT 鼠標 拖放

2012-01-17 13:58:17

JavaSwing

2012-01-16 16:16:49

JavaSwing

2012-01-04 09:42:40

HTML 5

2009-07-15 10:52:13

JTree組件

2009-07-17 17:00:20

JavaFX功能Swing

2012-03-07 09:08:00

HTML 5

2012-01-17 14:01:33

JavaSwing

2009-06-17 15:13:57

Java網絡功能編程方法

2010-01-29 09:00:48

HTML5 File 文件拖放上傳

2022-10-19 09:48:00

谷歌Chrome瀏覽器

2022-02-17 11:13:08

從Windows 1任務欄

2009-07-10 14:20:01

AcceleratorJava Swing

2009-07-10 11:45:44

Java Swing
點贊
收藏

51CTO技術棧公眾號

亚洲综合社区| 爱爱精品视频| 综合电影一区二区三区 | 国产福利一区二区三区视频在线 | 欧美日韩在线精品一区二区三区| 四虎成人在线观看| 久久影视一区| 亚洲成人中文字幕| 国产又黄又猛又粗又爽的视频| 自拍视频在线免费观看| 国内精品久久久久影院薰衣草 | www.国产高清| 日韩情爱电影在线观看| 欧美精品一区二区三区在线| 无码人妻丰满熟妇区毛片| 麻豆传媒在线免费看| 成人国产精品免费网站| 国产玖玖精品视频| 日韩欧美亚洲一区二区三区| 99久久久久国产精品| 日韩av在线影院| 91精品999| 2022成人影院| 亚洲国产精品久久久久秋霞影院 | 色哟哟网站在线观看| 伊人久久在线| 亚洲大尺度视频在线观看| 一区二区三区四区不卡| 日韩av地址| 成人性生交大片免费看中文| 国产欧美日韩高清| 亚洲GV成人无码久久精品 | 综合亚洲深深色噜噜狠狠网站| 精品国产区在线| 精品人妻无码一区二区| 久久国产生活片100| 日韩av电影免费观看高清| 国产精品第72页| 自拍欧美日韩| 久久综合久久美利坚合众国| 综合 欧美 亚洲日本| 欧美激情在线精品一区二区三区| 精品成人私密视频| 亚洲怡红院在线| 国产精品诱惑| 欧美日韩亚洲综合在线| 中文字幕第36页| 国产精品av一区二区三区| 亚洲一区在线观看免费观看电影高清 | 999视频在线观看| 无码人妻熟妇av又粗又大| 欧美国产一级| 中文日韩在线观看| 国产精品久久AV无码| 精品国产亚洲一区二区三区| 欧美性生交片4| 奇米精品一区二区三区| 黄色小说在线播放| 亚洲激情自拍视频| 中文字幕人成一区| 99免在线观看免费视频高清| 91免费观看视频| 国产精品对白一区二区三区| 91 中文字幕| 久久婷婷亚洲| 国产福利视频一区二区| 老熟妇仑乱一区二区av| 中文在线一区| 91大神在线播放精品| 久久精品国产av一区二区三区| 亚洲午夜精品一区 二区 三区| 色综合伊人色综合网| 一色道久久88加勒比一| 国产一区二区电影在线观看| 亚洲毛片在线免费观看| 国产精品无码电影| 欧美尿孔扩张虐视频| 亚洲激情久久久| 午夜不卡久久精品无码免费| 91九色鹿精品国产综合久久香蕉| 日韩视频不卡中文| 色黄视频免费看| 精品国产一区二区三区2021| 91精品国产91久久久久久最新毛片| 亚洲一区二区福利视频| 欧美成人三级| 欧美一区二区三区思思人| 天天爽夜夜爽视频| 高清日韩中文字幕| 欧美精品一区二区三区在线播放 | 粉嫩av亚洲一区二区图片| 99re在线观看| 亚洲欧美色视频| 国产日韩欧美电影| 异国色恋浪漫潭| 国内小视频在线看| 日韩欧亚中文在线| 国产色视频在线播放| 国产欧美日韩电影| 日韩欧美国产系列| 亚洲区免费视频| 国产精品7m凸凹视频分类| 欧美成人中文字幕| 黄色大片网站在线观看| 日韩精品三区四区| 亚洲最大av网站| 香蕉视频黄色片| 久久久欧美精品sm网站| 日本高清视频一区二区三区| 色影院视频在线| 亚洲国产精品一区二区www| www.亚洲天堂网| 成人短视频软件网站大全app| 精品国产凹凸成av人网站| 香蕉视频黄色在线观看| 欧美高清在线| 3344国产精品免费看| 一区二区国产欧美| 成人免费看视频| 亚洲春色在线视频| 最新黄网在线观看| 色综合久久88色综合天天| 中文字幕国产免费| 羞羞答答一区二区| 欧美成人免费小视频| 亚洲黄色免费观看| 国产九九视频一区二区三区| 麻豆亚洲一区| 人交獸av完整版在线观看| 日本乱人伦一区| 在线观看成人动漫| 中文字幕免费一区二区| 国产成人精品优优av| 国产精品久久久久久免费免熟| 97se亚洲国产综合自在线| 色呦呦网站入口| 成人日韩在线| 亚洲国产私拍精品国模在线观看| 国产麻豆a毛片| 欧美亚洲三级| 国产欧美日韩伦理| av片在线观看免费| 欧美亚洲禁片免费| 亚洲天堂久久新| 在线欧美一区| 亚洲伊人成综合成人网| 欧美性天天影视| 欧美日韩中文字幕在线| 精品中文字幕在线播放| 午夜久久福利| 91在线精品视频| 97在线观看免费观看高清| 黑人极品videos精品欧美裸| 国产a√精品区二区三区四区| 婷婷色综合网| 成人国产精品一区二区| av网在线观看| 欧美日韩精品福利| 男人天堂资源网| 欧美专区一区二区三区| 国产精品对白一区二区三区| 性欧美video高清bbw| 在线综合+亚洲+欧美中文字幕| 四虎成人免费影院| 日韩电影在线观看电影| 欧美日本国产精品| 性欧美hd调教| 国产一区二区动漫| www.国产毛片| 久久精品免视看| 9久久婷婷国产综合精品性色 | 91精品国产综合久久久久久漫画| 精品视频第一页| 免费不卡在线观看| 亚洲最新在线| 日韩欧美一区二区三区在线观看| 伊人久久精品视频| 一级黄色大毛片| 亚洲女厕所小便bbb| 午夜天堂在线视频| 欧美理论在线| 国产另类自拍| 美女100%一区| 日韩中文字幕精品| 精品国产免费无码久久久| 夜夜精品视频一区二区| 精品1卡二卡三卡四卡老狼| 国产精品av久久久久久麻豆网| 成人欧美一区二区三区视频| 好吊日av在线| 国产视频欧美视频| 中文字幕 国产| 亚洲三级视频在线观看| 色偷偷中文字幕| 亚洲国产日本| 亚洲成人精品电影在线观看| 少妇高潮一区二区三区99| 理论片在线不卡免费观看| 性欧美18一19性猛交| 五月综合激情婷婷六月色窝| xxxxx在线观看| 日本不卡的三区四区五区| 在线观看日本一区| 韩国精品福利一区二区三区| 久久久免费观看| 欧美大片aaa| 日韩一级视频免费观看在线| 91久久国产视频| 国产性天天综合网| 天天久久综合网| 日本一区中文字幕| 国内少妇毛片视频| 欧美一级淫片| 国产欧美一区二区三区另类精品 | 亚洲精品国产精| 日本二三区不卡| 青青草手机在线观看| 国产欧美日韩卡一| 欧美极品jizzhd欧美仙踪林| 奇米888四色在线精品| 久久久天堂国产精品| 神马电影久久| 国产区一区二区三区| 国产精品久久久久77777丨| 欧美激情一区二区三区久久久| 国产中文在线视频| 欧美一区二区三区四区五区| 天堂网av手机版| 亚洲精品视频在线观看网站| 亚洲综合色一区| 成人看片黄a免费看在线| 亚洲精品成人在线播放| 欧美亚洲三区| 男女啪啪免费视频网站| 91精品91| 亚洲一区二区三区欧美| 欧美三级自拍| 97免费资源站| 亚洲国产精品免费视频| 国产精品免费久久久久影院| 美女搞黄视频在线观看| 欧美丰满少妇xxxx| 理论片午午伦夜理片在线播放| 亚洲欧美在线看| 色婷婷av一区二区三| 欧美一区二区精美| 一级黄色大毛片| 欧美日韩在线直播| 久久夜色精品亚洲| 婷婷亚洲久悠悠色悠在线播放| 青青草精品在线视频| 国产精品美女久久久久av爽李琼 | 国产精品丝袜在线| 亚洲一区二区自偷自拍 | 亚洲av毛片基地| 久久午夜电影网| 级毛片内射视频| 久久久国产精华| 国产精品无码久久久久一区二区| 成人国产视频在线观看| 国产女主播在线播放| 国产不卡免费视频| 中文字幕在线观看91| 国产成人av一区二区三区在线观看| 激情黄色小视频| 日韩成人精品在线观看| 天堂av在线网站| 美女脱光内衣内裤视频久久影院| 日本a级片免费观看| 免费在线观看成人av| 久久久久狠狠高潮亚洲精品| 亚洲影视综合| 色播五月综合网| 国产高清精品网站| 精品人妻一区二区免费| 国产精品香蕉一区二区三区| 亚洲一区在线不卡| 爱看av在线| 国产欧美一区二区精品秋霞影院| 野战少妇38p| 99re亚洲国产精品| 久久久久久久久久久国产精品| 久久精品一区蜜桃臀影院| 久久久精品成人| 一区二区在线免费| 欧美特黄aaaaaa| 精品视频123区在线观看| 91国内精品视频| 欧美videofree性高清杂交| 日本xxxx人| 国产亚洲精品久久久久久牛牛| 91在线高清| 欧美大片在线看免费观看| 国产成人无吗| 97碰在线观看| 九七影院97影院理论片久久 | 亚洲欧美中文在线视频| 最近高清中文在线字幕在线观看| xxxxx成人.com| 嗯啊主人调教在线播放视频| 国产精品h片在线播放| 欧美高清免费| 国产不卡一区二区在线观看 | 欧美在线影院一区二区| 国产视频www| 日韩精品日韩在线观看| 国内在线免费高清视频| 欧美劲爆第一页| 国产一区二区主播在线| 91在线观看网站| 欧美日韩中文字幕一区二区三区| 日本a级片在线观看| 香蕉久久夜色精品国产| 亚洲第一天堂久久| 91色综合久久久久婷婷| 日本猛少妇色xxxxx免费网站| 亚洲午夜电影在线| 日本一区二区三区久久| 精品美女一区二区| 91在线看片| 青青草原成人在线视频| 国产高清视频一区二区| 欧美福利一区二区三区| 综合国产精品| 日韩无套无码精品| 国产成人在线色| 欧美美女性生活视频| 黑人巨大精品欧美一区免费视频| 91黄色在线视频| 亚洲欧美在线看| 92久久精品| 懂色av一区二区三区在线播放| 亚洲天堂日韩在线| 九一免费在线观看| 国产老肥熟一区二区三区| 精品亚洲aⅴ无码一区二区三区| 亚洲成人av福利| 国产欧美日韩成人| 日韩在线视频免费观看| 一级毛片久久久| 久草精品电影| 亚洲最新色图| 久久人人爽av| 日本一区二区三区在线不卡| 69成人免费视频| 日韩国产欧美精品一区二区三区| 在线网址91| 91超碰在线电影| 66视频精品| 古装做爰无遮挡三级聊斋艳谭| 中文字幕不卡在线| 中文字幕欧美色图| 在线播放日韩专区| 欧美无毛视频| 欧美美乳视频网站在线观看| 国产精品一区毛片| 中国极品少妇videossexhd| 亚洲综合久久av| 四虎在线视频免费观看| 久久久免费精品视频| 第一区第二区在线| 欧美一区二区中文字幕| 成人av综合一区| 日韩女优在线观看| 欧美成人猛片aaaaaaa| 国产又色又爽又黄刺激在线视频| 99在线视频播放| 国内久久视频| 久久人人妻人人人人妻性色av| 精品国产鲁一鲁一区二区张丽| 免费av网站观看| 97在线观看免费高清| 哺乳一区二区三区中文视频| 日本成人在线不卡| 国产v日产∨综合v精品视频| 久久久久久av无码免费网站| 欧美精品一区二区三区久久久 | 不卡av免费在线| 国产拍揄自揄精品视频麻豆| 最近免费中文字幕大全免费版视频| 在线观看欧美成人| 豆花视频一区| 国产综合中文字幕| 日本一区二区三区四区在线视频 | 成人免费网站在线看| 久久精品国产大片免费观看| 婷婷激情5月天| 亚洲综合在线视频| 欧美孕妇孕交| 成人精品aaaa网站| 在线精品福利| 日韩中文字幕有码| 欧美日韩国产综合久久 | 97色婷婷成人综合在线观看| 麻豆一区二区三区在线观看| 成人激情校园春色| 成人午夜视频精品一区| 国产亚洲美女久久| 视频二区欧美| 别急慢慢来1978如如2|