【发布时间】:2012-08-04 04:46:24
【问题描述】:
在 mac osx 上,如果您在浏览器中运行 java 小程序,则可以通过按 cmd+shift 将小程序弹出浏览器。这实际上是一种解决方法,当您想在小程序中拖放某些东西时 - 浏览器内的小程序中的拖放在 mac osx 上被破坏了。
所以我的问题是,有什么方法可以检查小程序是否在使用 Java 的浏览器之外?你们有任何想法吗?
编辑: 这个 cmd+shift 功能将框架从浏览器中分离出来,在 JRE 7 以及拖放操作中都被破坏了。
【问题讨论】:
-
D-n-D 是如何失败的?它会抛出异常吗?
-
只是一个实验,但您可以尝试通过自己迭代父链接或使用
SwingUtilities.getRoot或SwingUtilities.getWindowAncestor来定位包含小程序的根窗口。运气好的话,那个窗口的类名,或者它的一些其他属性,会给你一个可以使用的指示。 -
@AndrewThompson: lists.apple.com/archives/java-dev/2011/Jul/msg00083.html
-
在 mac osx 上,当使用普通的 java TransferHandler 时,一旦小程序在浏览器上运行,拖放就会被忽略。 java 跟踪中没有异常。这对你来说足够了吗?如果没有,我可以给你一个小例子,这样你就可以在 mac 上运行它来查看行为。
-
我确实创建了一个答案,但您可以自己写一个答案,包括您使用的实际方法,以及您用于区分情况的实际值。不用担心接受代表,只要您也支持我的回答,我就会很高兴。