我的swing应用程序中有一个JTextField,它包含选择使用的文件的文件路径.目前我有一个JFileChooser用于填充此值.但是,我想为用户添加将文件拖放到此JTextField上的功能,并让它将该文件的文件路径放入JTextField,而不是始终使用JFileChooser.
如何才能做到这一点?
我有一个调试器日志,我用JavaScript编写了一个我正在研究的项目.该日志基本上是<aside>HTML5中的标记,仅在需要时显示.我想玩弄能够在屏幕上移动日志的想法,因为它可能会重叠某些事情(这对我的项目来说很好).但是,我似乎无法弄清楚如何使用HTML5正确地拖放标签,以便它可以放置在屏幕上的任何位置(好吧,或在<div>元素内).
在阅读HTML5的拖放支持后,我对它的工作方式有了基本的了解,但是我不知道在允许将div放在任何地方时从哪里开始(它的z-index是一个很高的值,所以正如我所说,重叠很好).
有什么建议?
哦,我想尽可能避免在这个项目中使用外部库.我试图用纯JavaScript/HTML5来做这件事.
我正在使用html5事件来启用文件和元素拖放.我已将dragover事件附加到正文并使用事件委派来显示可拖放的可拖动位置.我的问题是如何判断文件是否被拖动与具有draggable = true的元素.我知道我可以通过e.target检测被拖动的元素.但是,我怎么知道它是否是一个文件.
jquery可用.
另外,不要在这里讨论jquery-ui draggable.
我开始认为可能检测文件的唯一方法是排除并检测元素.如果我们不拖动元素,则假设它是一个文件.这将需要额外的工作,但默认情况下图像和链接是可拖动的,因此我将不得不向它们添加事件或阻止它们拖动.
如何在AngularJS应用程序中注册我自己的事件监听器?
具体来说,我正在尝试注册拖放(DND)侦听器,以便在我的视图的新位置拖放某些内容时,AngularJS会重新计算业务逻辑并更新模型,然后更新视图.
我试图找出一种通过javascript的event.dataTransfer传递本机对象的方法来进行拖放.我正在编写CMS的前端编辑器部分,并希望用户能够拖放元素(许多不同类型,从文件到图像到HTML片段到几乎任何东西).这就是为什么我想传递一个真实的对象,所以我可以附加数据来指定必要的东西,以便知道如何渲染它.
一种解决方法是使用jQuery的.data()将对象附加到页面上的其他内容,然后简单地在setData中传递选择器字符串...但我并不特别喜欢该hack.
这也可以通过jQuery UI的draggable/droppable来解决(我并不完全反对使用任何库),但由于dropzone位于iframe中,这实际上是最新jQuery UI中的文档错误(1.10.2) ).另外,如果可能的话,我更愿意本地做.这个应用程序中已经有足够的库.
这是问题所在:http://jsfiddle.net/AHnh8/
var foo = {foo: "foo", bar: "bar"};
$dragme.on("dragstart", function(e) {
e.originalEvent.dataTransfer.setData("foo", foo);
});
$dropzone.on("dragenter", function(e) { e.preventDefault(); });
$dropzone.on("dragover", function(e) { e.preventDefault(); });
$dropzone.on("drop", function(e) {
console.log(e.originalEvent.dataTransfer.getData("foo")); // [Object object]
console.log(typeof e.originalEvent.dataTransfer.getData("foo")); // string
});
Run Code Online (Sandbox Code Playgroud)
现在,在阅读了规范后,我完全理解为什么会失败.我不明白的是,如何最终实现我想要的.
谢谢
有没有办法禁用解决方案资源管理器的拖放功能?你为什么这么问?我使用wacom数位板已经有好几年了,我喜欢它.但是,当您在解决方案资源管理器中使用它与TFS或AnkhSvn等源代码控件结合使用时,如果您意外将文件移动到其他目录中,则会发生灾难.
我目前设置visual studio来提示何时要检出文件,但是当检出解决方案/项目文件时,上述问题仍然存在.
我是android编程新手android studio中的拖放功能无法正常工作.我无法将任何东西拖到我的手机上.现在我的片段是谷歌地图视图,我想在视图中添加一个搜索栏.它只是不拖.当我尝试在文本中添加它时,它说元素项不允许在这里?
这是我的activity_maps.xml文件
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" android:id="@+id/map" tools:context=".MapsActivity"
android:name="com.google.android.gms.maps.SupportMapFragment">
<item android:id="@+id/search"
android:title="@string/search_title"
android:icon="@drawable/ic_search"
android:showAsAction="collapseActionView|ifRoom"
android:actionViewClass="android.widget.SearchView" />
</fragment>
Run Code Online (Sandbox Code Playgroud) android drag-and-drop fragment android-layout android-studio
我正在使用jQuery库来实现拖放.
如何删除被删除的元素?
我想在div中获取图像的id.拖动以下元素:
<div class="block">
<asp:Image ID="Image9" AlternateText="10/12/2008 - Retina" Width=81 Height=84 ImageUrl="~/uploads/ImageModifier/retina.jpg" runat=server />
</div>
Run Code Online (Sandbox Code Playgroud)
我从他们的例子中得到了标准的drop函数:
$(".drop").droppable({
accept: ".block",
activeClass: 'droppable-active',
hoverClass: 'droppable-hover',
drop: function(ev, ui) { }
});
Run Code Online (Sandbox Code Playgroud)
我尝试过各种ui.id似乎不起作用的等等.
在窗口外拖动时,Firefox无法正确触发dragleave事件:
https://bugzilla.mozilla.org/show_bug.cgi?id=665704
https://bugzilla.mozilla.org/show_bug.cgi?id=656164
我正在尝试为此开发一种解决方法(我知道这可能是因为Gmail正在这样做),但我能想出的唯一的东西似乎真的很乱.
知道何时拖出窗外的一种方法是等待dragover事件停止发射(因为dragover在拖放操作期间不断发射).这就是我这样做的方式:
var timeout;
function dragleaveFunctionality() {
// do stuff
}
function firefoxTimeoutHack() {
clearTimeout(timeout);
timeout = setTimeout(dragleaveFunctionality, 200);
}
$(document).on('dragover', firefoxTimeoutHack);
Run Code Online (Sandbox Code Playgroud)
此代码实际上是一次又一次地创建和清除超时.除非dragover事件停止触发,否则将无法达到200毫秒的超时.
虽然这有效,但我不喜欢为此目的使用超时的想法.感觉不对.这也意味着在"掉落区"造型消失之前会有一点滞后.
我的另一个想法是检测鼠标何时离开窗口,但在拖放操作期间,这样做的正常方法似乎不起作用.
有没有人有更好的方法这样做?
更新:
这是我正在使用的代码:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Drag and Drop Issue</title>
<script src="http://code.jquery.com/jquery.js"></script>
</head>
<body>
Open up the console and look at what number is reporting when dragging files in and out of the window. The number should always be 0 when leaving …Run Code Online (Sandbox Code Playgroud) 我已将事件绑定到不同的元素,当我在除Firefox之外的所有浏览器中拖动它时,它按预期工作.但是,在Firefox中,它根本不起作用.唯一发生火灾的事件是dragstart,其他事件都没有发生.这是怎么回事?
drag-and-drop ×10
html5 ×4
javascript ×4
jquery ×3
android ×1
angularjs ×1
dom-events ×1
fragment ×1
html ×1
java ×1
swing ×1