这个问题已经在这里有一个答案:
- 为什么getWindow()不能得到解决? 3个回答
我想打电话给JSObject.getWindow(this)
在init
的方法JApplet
,但它是不能够解决的符号getWindow
。
这个问题特别是通过NetBeans中创建JavaFX应用程序项目发生的,如果在一个Java应用程序项目中使用getWindow是越来越得到解决。
我也包括了plugin.jar
从路径Java\jdk1.7.0_07\jre\lib
。
这是我在NetBeans中创建一个JavaFX应用程序项目。
这样做的原因是,jfxrt.lib也有一个叫JSObject类。 这JSObject没有getWindow函数的定义,同时plugin.jar一个人。 如果更改JAR的依赖秩序,使Java解决JSObject到plugin.jar那么Java能够调用getWindow功能。
以下是链接到两个是jfxrt一个没有getWindow定义classes.Note的的javadoc。
http://docs.oracle.com/javafx/2/api/netscape/javascript/JSObject.html
http://www.oracle.com/webfolder/technetwork/java/plugin2/liveconnect/jsobject-javadoc/netscape/javascript/JSObject.html
我使用的IntelliJ,只是遇到了类似的问题。
我认为正在发生的是jfxrt.jar和plugin.jar都有netscape.javascript.JSObject
类,但两个班有不同的签名。 的IntelliJ是从加入的jre / lib目录罐子按字母顺序到classpath中。
告诉的IntelliJ不jfxrt.jar加入到classpath中我已经能够因为我没有使用JavaFX来解决我的问题。
什么这点到是JavaFX的需要不同的方法来使用JSObject -我不是专家(甚至初学者)在JavaFX的,但下面的页面看起来有用的建议,我认为调用JavaScript是在使用JavaFX做不同的WebEngine.executeScript()
https://blogs.oracle.com/javafx/entry/communicating_between_javascript_and_javafx
试图调用JSObject.getWindow(this)
中init
方法
该JSObject
通常是不可用,直到start()
被调用。
你有没有import netscape.javascript.*;
?
@deorvatsingh这里的问题是没有与NetBeans您添加的jar的顺序。 在JavaFX应用程序jfxar.jar是第一次看到在NetBeans的情况下,多数民众赞成你是不是能够得到的范围为您的原因JSObject.getWindow(this)
,
对于NetBeans和fxappication执行你的第一次添加的plugin.jar然后加入jfxrt.jar到您的器件的应用,然后它会识别。