- 浏览: 3122827 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (372)
- diy (4)
- linux (19)
- 杂项 (30)
- Swing (21)
- Java2D (21)
- Java3D (5)
- JavaIO (9)
- Java通讯 (5)
- Java设计模式 (3)
- Java多媒体 (0)
- Java算法 (7)
- Spring&EJB (29)
- Javaoffice (4)
- web前端 (23)
- javascript (1)
- php基础 (1)
- eclipse (3)
- 网站相关 (3)
- Apache (4)
- seo (12)
- db (28)
- server (3)
- api (4)
- 异常 (12)
- 计算机网络词汇表 (3)
- 随想录 (52)
- 收藏 (17)
- 犹太人的智慧 (3)
- 多线程 (1)
- jfreechart (7)
- Test (1)
- SorLib (30)
- ruby on rails (1)
最新评论
-
houyutao:
二三四都是错的空字符串也被匹配,*应该改成+
Java中判断字符串是否为数字的五种方法 -
mingyun:
但是 java.util.ArrayList 实现了 remo ...
java.lang.UnsupportedOperationException 解决方案 -
mingyun:
1.因为 Arrays.asList 返回的是 Arrays内 ...
java.lang.UnsupportedOperationException 解决方案 -
leolu007:
用java8新特性String testStr = " ...
java.lang.UnsupportedOperationException 解决方案 -
zhaohuaxishiwzw:
我之前所在的项目就是日本一家证券公司的项目。完全使用的是j2e ...
抛弃EJB(EJB2.0,EJB3.0,EJB4.0)
Swing的拖拽貌似挺复杂的效果,其实实现起来还是很容易的。只需要对控件实现DropTargetListener接口即可。
运行效果如下图:
拖拽文件到该空间后,我们获得文件基本信息,并显示,更具体的显示效果您可以自己去控制。拖拽文件后的效果:
程序完成代码:
运行效果如下图:
拖拽文件到该空间后,我们获得文件基本信息,并显示,更具体的显示效果您可以自己去控制。拖拽文件后的效果:
程序完成代码:
package com.zakisoft.drug; /** * @author zakisoft.com */ import java.awt.Container; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.Transferable; import java.awt.dnd.DnDConstants; import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; import java.awt.dnd.DropTargetEvent; import java.awt.dnd.DropTargetListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; import java.io.InputStream; import java.util.Iterator; import java.util.List; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; public class DropTargetTest { private DropTargetTest() { JFrame frame = new DropTargetFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } public static void main(String[] args) { JFrame.setDefaultLookAndFeelDecorated(true); new DropTargetTest(); } } class DropTargetFrame extends JFrame { private static final long serialVersionUID = 6197629178772816152L; public DropTargetFrame() { setTitle("Swing拖拽的例子 Zakisoft.com"); setSize(600, 400); setLocationRelativeTo(getOwner()); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); Container contentPane = getContentPane(); JTextArea textArea = new JTextArea( "请拖拽文件到该区域.\n "); new DropTarget(textArea, new TextDropTargetListener(textArea)); contentPane.add(new JScrollPane(textArea), "Center"); } } class TextDropTargetListener implements DropTargetListener { public TextDropTargetListener(JTextArea ta) { textArea = ta; } public void dragEnter(DropTargetDragEvent event) { int a = event.getDropAction(); if ((a & DnDConstants.ACTION_COPY) != 0) textArea.append("ACTION_COPY\n "); if ((a & DnDConstants.ACTION_MOVE) != 0) textArea.append("ACTION_MOVE\n "); if ((a & DnDConstants.ACTION_LINK) != 0) textArea.append("ACTION_LINK\n "); if (!isDragAcceptable(event)) { event.rejectDrag(); return; } } public void dragExit(DropTargetEvent event) { } public void dragOver(DropTargetDragEvent event) { } public void dropActionChanged(DropTargetDragEvent event) { if (!isDragAcceptable(event)) { event.rejectDrag(); return; } } public void drop(DropTargetDropEvent event) { if (!isDropAcceptable(event)) { event.rejectDrop(); return; } event.acceptDrop(DnDConstants.ACTION_COPY); Transferable transferable = event.getTransferable(); DataFlavor[] flavors = transferable.getTransferDataFlavors(); for (int i = 0; i < flavors.length; i++) { DataFlavor d = flavors[i]; textArea.append("MIME type= " + d.getMimeType() + "\n "); try { if (d.equals(DataFlavor.javaFileListFlavor)) { List<?> fileList = (List<?>) transferable .getTransferData(d); Iterator<?> iterator = fileList.iterator(); while (iterator.hasNext()) { File f = (File) iterator.next(); textArea.append(f + "\n "); } } else if (d.equals(DataFlavor.stringFlavor)) { String s = (String) transferable.getTransferData(d); textArea.append(s + "\n "); } else if (d.isMimeTypeEqual("text/plain ")) { String charset = d.getParameter("charset "); InputStream in = (InputStream) transferable .getTransferData(d); boolean more = true; int ch; if (charset.equals("ascii ")) { do { ch = in.read(); if (ch != 0 && ch != -1) textArea.append(" " + (char) ch); else more = false; } while (more); } else if (charset.equals("unicode ")) { boolean littleEndian = true; do { ch = in.read(); int ch2 = in.read(); if (ch != -1 && littleEndian) ch = (ch & 0xFF) | ((ch2 & 0xFF) << 8); if (ch == 0xFFFE) littleEndian = false; else if (ch != 0 && ch != -1) textArea.append(" " + (char) ch); else more = false; } while (more); } textArea.append("\n "); } } catch (Exception e) { textArea.append("Error: " + e + "\n "); } } event.dropComplete(true); } public boolean isDragAcceptable(DropTargetDragEvent event) { return (event.getDropAction() & DnDConstants.ACTION_COPY_OR_MOVE) != 0; } public boolean isDropAcceptable(DropTargetDropEvent event) { return (event.getDropAction() & DnDConstants.ACTION_COPY_OR_MOVE) != 0; } private JTextArea textArea; }
发表评论
-
JFileChooser 只选(显示)文件夹
2012-06-29 11:17 3870小常识,就是总是忘,干脆整理下: JFileChooser f ... -
Swing免费皮肤Substance的使用
2010-10-25 16:22 22434关键词:Swing换肤,Substance,免费皮肤 Swi ... -
Swing 窗体关闭对话框提示
2010-10-20 17:56 6873关键词:Swing,关闭窗体,对话框提示 Swing关闭窗体 ... -
JTable表头排序的两种方法
2010-10-13 09:46 16624关键词:JTable,表头排序,线程安全 在Java6以前, ... -
基于Swing的图片倒影特效
2010-10-11 17:34 3751关键字:Swing,倒影特效,Graphics2D,Gradi ... -
怎样学习Swing
2010-09-27 16:36 3572Sun网站上的Java Tutorial就非常好,非常适合。它 ... -
Swing的第一推动力(转载)
2010-09-27 16:32 1634转载自[url]http://blog.sina. ... -
How to Write a Custom Swing Component
2010-09-27 16:29 2547When you hear comparisons betwe ... -
Swing页面属性的设置顺序
2010-09-15 15:35 4770这是一个细节问题,但 ... -
paint和paintComponent方法的关系
2010-09-15 14:12 15723关键词:swing,paint,paintComponent, ... -
SwingUtilities中invokeLater,invokeAndWait的区别和作用
2010-09-02 17:28 2987invokeLater,invokeAndWait是专门给Sw ... -
Swing控件(JLabel,JButton....)设置字体和大小
2010-09-02 16:57 19927关键字:Swing控件,JButton,JLabel,字体,大 ... -
Java 拖动Swing组件和图片
2010-08-17 14:07 14482在Swing中拖动一个组件或者图片,我们抛开定位布局不说,是件 ... -
SwingUtilities.convertPoint 方法的作用
2010-08-17 13:38 6770SwingUtilities类是Swing组件 ... -
JTable 行 列 单元格 操作小结
2010-07-15 10:11 11080一.创建表格 1) 调用无参构造函数. JTable tabl ... -
JTable 保存单元格内容
2010-07-14 17:25 4199在开发过程中遇到这样一个问题,我编辑JTable里的内容,编辑 ... -
Swing, JTree拖拽的例子
2010-06-10 16:47 6273一个Java(JTree)拖拽的例子,其核心思想还是去实现Ja ... -
Swing JTable工厂(table4j)
2010-06-07 16:36 5257因为Swing提供的JTable用 ... -
Java Swing Border(Swing 边框) 归纳
2010-05-27 12:32 25762对Swing Border的一个小总结: 使用方法: Titl ... -
JFrame打开居中和相关设置
2010-05-13 15:51 7172对于JFrame,在界面初始化完成时,加入以下代码: //设置 ...
相关推荐
在Java Swing库中,实现鼠标拖拽功能是构建桌面应用程序时常见的需求,它涉及到事件处理、组件交互以及图形用户界面(GUI)的设计。本源码着重于如何在Swing组件上实现鼠标拖放操作,这对于创建自定义组件或增强已有...
在Java的Swing库中,拖放(Drag and Drop,简称DnD)功能是一种用户友好的交互方式,允许用户通过鼠标操作将一个组件中的数据拖放到另一个组件上。本教程将聚焦于“swing之拖拽功能DragDemo”,探讨如何在Swing应用...
Swing 是一个JavaScript库,专为实现容器内卡片元素的拖拽功能而设计,尤其吸引人的是它提供了独特的视觉效果,当用户尝试将卡片元素移出容器时,卡片会呈现出逼真的弹性摇摆效果。这一特性使 Swing 成为了前端...
今天我们将讨论一个基于jQuery的插件——"swing",它为卡片元素提供了独特的拖拽功能,特别是在卡片移出容器时添加了引人注目的弹性摇摆效果。 "swing"插件的核心功能在于实现卡片元素的拖拽行为。用户可以通过鼠标...
本篇文章将深入探讨如何在Swing中实现组件的透明效果以及拖动功能。 首先,我们来理解Swing组件的透明度设置。在Java中,我们可以使用`setOpaque(false)`方法来使组件变得透明。这个方法会告诉组件不要绘制其背景,...
JLayer 和 LayerUI 提供了高级装饰功能,可以方便地添加阴影、拖拽效果等。 对于功能实现,Swing 提供了丰富的组件功能。比如,JTable 可用于显示和编辑表格数据,JTree 显示层次结构的数据,JList 显示可选项目...
在实际应用中,我们还需要考虑一些额外的细节,如边界检查,确保组件不会拖出父容器的范围。此外,还可以通过设置组件的布局管理器为null,以允许自由移动组件。当然,对于更复杂的拖放操作,可能需要用到DragSource...
然后,AWT-WINDOWS线程可能会接管实际的窗口移动,但所有与用户界面更新相关的操作,如显示拖动效果,仍会在EDT上进行。拖放结束时,数据交换和结果处理也都在EDT上完成。 为了实现自定义的DnD功能,开发者需要设置...
在提供的压缩包文件中,"swing-exe.jar"可能是一个包含Swing应用的可执行JAR文件,用户可以直接运行查看Swing组件的实际效果。而"visual-swing"可能是MyEclipse中用于Swing可视化编辑的插件或者库文件,它扩展了IDE...
总的来说,这个Java Swing秒表项目展示了Swing的强大功能,包括自定义窗口外观、透明效果、事件处理以及程序启动的便捷性。通过深入学习和理解这些知识点,开发者不仅可以掌握Swing的基本用法,还能进一步提升在Java...
这篇博客文章“所支持拖拽功能的Swing-JTree代码”探讨了如何增强JTree的功能,使其支持拖放(Drag and Drop)操作,这是在图形用户界面设计中非常实用的一个特性。 拖放功能允许用户通过鼠标将一个项目从一处拖到...
- **鼠标适配器**:`MouseAdapter`类为处理鼠标事件提供了一个基础,通过扩展`MouseAdapter`并覆盖特定的方法来响应鼠标事件,如点击、拖拽等。 - **监听器模式**:实现`ActionListener`接口来处理鼠标点击事件。当...
我们需要创建一个自定义的`TransferHandler`子类,重写其中的`importData`方法,以便在图片被拖放到`JFrame`时处理数据。 在实际代码中,你可能会使用`DataFlavor`来识别拖放的数据类型,使用`FileDrop`库简化文件...
- **设计界面**:在编辑器中,你可以从工具栏中选择Swing组件,然后将它们拖放到设计面板上。可以通过属性窗口调整组件的大小、位置、颜色等属性。 - **保存与运行**:完成设计后,保存Java文件,然后右键单击项目...
这里的`.draggable-element`是你要设置拖拽效果的元素选择器,`swing: true`参数则启用了摇摆效果。 4. **自定义效果**:SwingDrag通常会提供一些配置选项,允许开发者自定义摇摆效果的样式和行为。例如,你可以...
而Swing可视化开发插件正是为了解决这个问题,它提供了所见即所得(WYSIWYG)的界面编辑器,允许开发者直接拖拽组件,调整大小和位置,设置各种属性,大大降低了开发复杂性。 JFrame是Swing中的顶级容器,是大多数...
它通过直观的图形元素(如按钮、菜单等)以及便捷的操作方式(如鼠标点击、拖拽等),简化了用户与系统的互动过程,极大地提升了用户体验。对于Java开发者来说,理解和掌握GUI的构建方法是至关重要的。 #### 创建...
解压并运行这个JAR,可以直观地看到可拖动组件在实际应用中的效果。 7. **源码分析** "Source_Files.zip" 包含了源代码,你可以通过查看和学习这些代码来深入理解拖动组件的实现细节。源码通常包括类的设计、事件...
在Java Swing库中,`JList`是一个常用的组件,用于展示一系列可选择的项。它在用户界面设计中常用于创建列表视图,允许用户通过单击或键盘导航来选择项目。在本教程中,我们将深入探讨如何实现`JList`的上下左右拖动...
在Swing中,我们可以实现一些高级特性,比如拖拽功能和透明组件。在这个“java拖拽透明组件源码”中,我们主要关注的是如何在Swing环境中创建一个可拖动的透明组件。 拖拽功能在Java中可以通过实现`TransferHandler...