精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

亚洲国产小视频| 一区二区三区中文字幕精品精品 | 亚洲第一色在线| 九色在线视频观看| 午夜视频在线免费观看| 国产盗摄视频一区二区三区| 7777kkkk成人观看| 中文字幕第69页| 林ゆな中文字幕一区二区| 在线观看区一区二| www插插插无码视频网站| 久青草国产在线| 国产iv一区二区三区| 国产精品wwwwww| 国产亚洲第一页| 日韩欧美午夜| 国产网站欧美日韩免费精品在线观看 | 视频一区中文字幕国产| 久久亚洲精品小早川怜子66| 欧美成人午夜精品免费| 日韩av综合| 精品视频在线看| 国产欧美高清在线| 九色91在线| 亚洲人123区| 日本在线观看一区| 婷婷在线免费观看| 国产福利视频一区二区三区| 国产精品极品尤物在线观看 | 亚洲性图久久| 久久久国产精品x99av | 亚洲av成人精品一区二区三区在线播放 | 337p日本欧洲亚洲大胆张筱雨| 日韩三级影视| 天天综合日日夜夜精品| 黄色一级视频播放| 成人影视在线播放| 久久女同性恋中文字幕| 成人免费看片网站| 精品欧美一区二区精品少妇| 久久国产精品无码网站| 国产97色在线|日韩| 日韩欧美性视频| 亚洲国产专区| 性欧美xxxx| 国产在线综合网| 国内自拍一区| 久久理论片午夜琪琪电影网| 久青草视频在线观看| 一区二区在线影院| 欧美精品制服第一页| 农村妇女精品一区二区| 久久久久久美女精品| 精品久久国产精品| jizz亚洲少妇| 欧美精品二区| 久久久久久久爱| 免费毛片一区二区三区| 在线亚洲一区| 日本91av在线播放| 波多野结衣在线观看一区| 亚洲在线国产日韩欧美| 日韩av黄色在线观看| 波多野结衣一区二区三区在线 | 国产成人久久久| 夜夜爽妓女8888视频免费观看| 丝袜亚洲另类欧美| 国产免费成人av| 超碰在线观看av| 99久久国产免费看| 日韩精品成人一区二区在线观看| 淫片在线观看| 一区二区三区在线视频观看| 久草免费福利在线| 忘忧草在线影院两性视频| 色偷偷88欧美精品久久久| 一区二区在线播放视频| 国产情侣一区在线| 亚洲精品久久久久久下一站 | 最新中文字幕日本| 欧美三级午夜理伦三级在线观看| 精品无码久久久久久国产| wwwww黄色| 欧美午夜一区| 日本精品中文字幕| 国产美女裸体无遮挡免费视频| 国产ts人妖一区二区| 欧美激情www| 蜜桃视频在线观看www社区 | 国产乱人乱偷精品视频| 国产69精品一区二区亚洲孕妇| 久久久久久久久久久一区| av免费在线一区二区三区| 一区二区三区在线视频观看58| 波多野结衣50连登视频| 亚洲我射av| 亚洲精品之草原avav久久| 午夜激情福利电影| 国产日韩免费| 91亚洲精华国产精华| 亚洲欧美色视频| ●精品国产综合乱码久久久久| 国产主播自拍av| 日韩黄色三级| 亚洲深夜福利在线| 国产探花在线免费观看| 香蕉成人久久| 成人在线视频网址| av在线之家电影网站| 亚洲综合丁香婷婷六月香| 熟妇人妻无乱码中文字幕真矢织江| 日韩一级淫片| 最新的欧美黄色| 国产日产精品一区二区三区| 国产精品一级二级三级| 欧美成人免费在线| 丁香花在线影院| 91精品久久久久久久99蜜桃| 亚洲国产无码精品| 亚洲激情专区| 成人国产1314www色视频| 在线观看麻豆| 在线国产电影不卡| 四虎永久免费影院| 亚洲激情网站| 国产精品国产精品| 天天色天天射天天综合网| 欧美日韩中字一区| 国产特级黄色录像| 99精品国产在热久久| 999国内精品视频在线| 日本中文字幕视频在线| 欧美性一二三区| 美女久久久久久久久久| 国产人成精品一区二区三| 国产精品毛片va一区二区三区| 国产cdts系列另类在线观看| 欧美久久久久久久久| 色欲AV无码精品一区二区久久 | 国产精品精品久久久久久| 天天爱天天干天天操| 亚洲制服丝袜在线| 女同性αv亚洲女同志| 欧美国内亚洲| 成人综合av网| 超碰在线97国产| 亚洲а∨天堂久久精品9966| 久草中文在线视频| 成人福利视频网站| 国产精品国产亚洲精品看不卡| 永久免费精品视频| 欧美激情精品久久久久久蜜臀 | 国产成人精品一区二区三区四区 | 91精品国产综合久久香蕉的特点| 色婷婷国产精品免| 久久99精品久久久久久久久久久久| 亚洲一二三区在线| 精品久久亚洲| 欧美—级高清免费播放| 深夜福利视频网站| 一本一本大道香蕉久在线精品 | 91影视免费在线观看| 欧美r级在线| 欧美一级搡bbbb搡bbbb| 久久视频免费看| 99久久精品国产精品久久| 91传媒久久久| 日韩在线高清| 99国产在线视频| 乱人伦视频在线| 在线电影av不卡网址| 国产裸体永久免费无遮挡| 亚洲柠檬福利资源导航| 亚洲图片欧美另类| 久久精品一区| 糖心vlog在线免费观看| 国产精品18hdxxxⅹ在线| 日韩美女中文字幕| 麻豆传媒视频在线观看| 精品美女在线播放| 国产亚洲欧美日韩高清| 18欧美亚洲精品| 一区二区视频观看| 久久 天天综合| heyzo亚洲| 日本黄色精品| 国产麻豆日韩| 日韩三级成人| 国产91|九色| wwwav在线| 亚洲欧美日韩网| 国产成人精品白浆久久69| 欧美色图在线视频| 国产黄在线免费观看| 91视频在线观看免费| 中文字幕在线观看日| 国产欧美二区| 国产大尺度在线观看| 亚洲免费毛片| 成人黄色片视频网站| 日韩免费小视频| 欧美精品久久久久久久久久| 国产高清在线看| 亚洲成avwww人| 在线观看中文字幕2021| 欧美视频在线观看 亚洲欧| 国产老头老太做爰视频| 久久免费精品国产久精品久久久久| 在线观看免费视频污| 国产精品永久| 免费人成在线观看视频播放| 日韩精品电影| 免费日韩av电影| 亚洲综合影院| 亚洲aⅴ男人的天堂在线观看| 校园春色亚洲色图| 97在线观看视频国产| 青青草原av在线| 久久久精品国产一区二区| 黄色片在线免费看| 亚洲黄页网在线观看| 99精品在线看| 欧美精品在线视频| 中文在线最新版天堂| 欧美日韩国产精品专区| 久久久久久久久久久久久久久久久| 国产精品人成在线观看免费 | 国产亚洲欧美日韩在线观看一区二区 | 亚洲乱码国产乱码精品精98午夜| 色欲狠狠躁天天躁无码中文字幕| av成人老司机| 日本一级片在线播放| 国产99一区视频免费| 黄色片免费网址| 国产在线播放一区二区三区| 日本黄大片一区二区三区| 日日噜噜夜夜狠狠视频欧美人 | 国产成人高清视频| 三大队在线观看| 国产乱子轮精品视频| 欧美国产日韩在线视频| 久久福利视频一区二区| 不用播放器的免费av| 久久国产剧场电影| 亚洲图色中文字幕| 久久超碰97中文字幕| www.超碰97.com| 国内精品久久久久影院一蜜桃| 91丨九色丨蝌蚪| 国产一区二区三区精品视频| 女同激情久久av久久| 黄网站免费久久| 91香蕉国产线在线观看| 国产一区91精品张津瑜| 无码人妻少妇色欲av一区二区| 国内精品伊人久久久久av一坑| 亚洲视频一二三四| 国产乱妇无码大片在线观看| wwwxxxx在线观看| 成人丝袜高跟foot| 公侵犯人妻一区二区三区| 国产日韩欧美一区二区三区综合| 日韩欧美黄色网址| 亚洲欧美另类图片小说| 久久网免费视频| 色综合久久中文字幕综合网| 国产在线一级片| 91精品国产色综合久久| 欧美一级一区二区三区| 国产偷亚洲偷欧美偷精品| 在线免费看av| 欧美精品成人91久久久久久久| 天堂中文av在线资源库| 国产精品揄拍一区二区| 玖玖玖电影综合影院| 国产一区二区三区四区五区在线 | 蜜桃一区av| 日韩欧美三级电影| 欧美国产先锋| 成人性视频欧美一区二区三区| 久久国产欧美日韩精品| 精品无码人妻少妇久久久久久| 久久久久久久久久久久久夜| 久久一级免费视频| 午夜视频久久久久久| 羞羞色院91蜜桃| 亚洲精品一线二线三线| fc2在线中文字幕| 国内精品免费午夜毛片| 91福利精品在线观看| 国产成人精品免费视频大全最热 | 豆花视频一区二区| 视频一区视频二区视频三区视频四区国产| 亚洲国产一区二区三区在线播放| 国产免费黄视频| 国产一区二区免费看| 精品无码一区二区三区| 亚洲美女偷拍久久| 波多野结衣黄色| 亚洲国产精品女人久久久| 日本a在线播放| 国产999在线| jizz久久精品永久免费| 亚洲精品中文字幕乱码三区不卡| 亚洲三级色网| 日韩欧美色视频| 国产欧美中文在线| 天堂在线免费观看视频| 欧美变态tickle挠乳网站| 尤物在线视频| 欧洲成人免费视频| 第一区第二区在线| 欧美做受777cos| 久久精品久久99精品久久| 51调教丨国产调教视频| 一区二区在线观看视频在线观看| 337p粉嫩色噜噜噜大肥臀| 亚洲国产天堂久久国产91| 超鹏97在线| 国产日韩欧美电影在线观看| 中文有码一区| 免费国产a级片| 丁香桃色午夜亚洲一区二区三区| 亚洲不卡在线播放| 欧美三级在线看| yourporn在线观看中文站| 青青草国产精品一区二区| 麻豆成人入口| 亚洲熟妇av日韩熟妇在线 | 欧美自拍偷拍网| 91久久精品一区二区三| 午夜激情在线视频| 午夜精品久久久久久99热软件| 亚洲天堂中文字幕在线观看| 国产又粗又大又爽的视频| 麻豆91在线观看| 国产精品麻豆一区| 在线播放中文字幕一区| 日本三级视频在线播放| 国产精选久久久久久| 第一sis亚洲原创| 欧美特黄aaa| 亚洲欧美中日韩| 国产乱码精品一区二区| 久久久国产精彩视频美女艺术照福利| 日韩护士脚交太爽了| 中文字幕中文字幕在线中心一区| 久久国产精品免费| 日韩成人毛片视频| 精品成a人在线观看| 国产盗摄在线视频网站| 黑人巨大精品欧美一区二区小视频| 在线欧美一区| 成人h动漫精品一区| 91国产精品成人| 77导航福利在线| 97se在线视频| av不卡在线看| 国产精品天天干| 91精品黄色片免费大全| 高清电影在线观看免费| 欧美激情www| 久久99精品国产麻豆婷婷| 青青青在线视频| 日韩国产中文字幕| 国产精品99久久久久久董美香| 中文字幕一区二区中文字幕| 国产福利一区在线观看| 日韩欧美国产亚洲| 永久免费看mv网站入口亚洲| 亚洲我射av| 精品视频免费在线播放| 国产欧美日韩不卡| 国产福利免费视频| 欧美中在线观看| 国产精品久久久久9999赢消| 无码人妻一区二区三区免费n鬼沢| 午夜国产不卡在线观看视频| av在线天堂播放| 国产高清一区视频| 日韩激情视频在线观看| 草视频在线观看| 亚洲免费一级电影| 电影一区二区三区久久免费观看| 日韩伦理在线免费观看| 中文字幕国产一区二区| 亚洲精品无遮挡| 国产精品久久久精品| 激情欧美一区二区三区| 中文字幕av久久爽一区| 欧美一级高清大全免费观看| 色戒汤唯在线| 91九色国产ts另类人妖| 久久午夜羞羞影院免费观看| 91久久国语露脸精品国产高跟| 91国在线精品国内播放 | 97国产精东麻豆人妻电影| 中文字幕一区二区三区精华液| 天堂av在线免费| 亚洲最大福利视频网|