在java程序中调用Javascript Popup

时间:2017-10-12 13:50:35

标签: java popupwindow nashorn

我尝试在java程序(web)中显示Popup。

我用javascript,nashorn尝试ScriptEngine但是失败了。因为警报,确认,提示不是js的方法。

java程序中的代码:

ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.eval(new FileReader("script.js"));

Invocable invocable = (Invocable) engine;
invocable.invokeFunction("openPopup", "ABC XYZ");

并在script.js中:

function openPopup(str){
    alert(str);
}

运行它,错误显示:

  

“警告”未定义

1 个答案:

答案 0 :(得分:2)

说明

在Java中打开 JavaScript弹出窗口 无法。 JavaScript引擎 Nashorn 不提供此方法。它通常是浏览器提供的功能。

这也是你得到的原因:

  

"警报"未定义

解决方案

您可以使用 Java 中的不同工具打开弹出窗口,例如 Swing JavaFX 。这些工具可以使用图形用户界面(GUI)创建程序,即具有windows

以下是Oracle关于如何使用 Swing 创建对话框的official tutorial

创建一个简单弹出窗口的相关方法是:

JOptionPane.showMessageDialog(frame, "Hello world!");

其中frame是对窗口的引用,它应该是此弹出窗口的父级。但是,您只需将null传递给快速且脏的弹出

JOptionPane.showMessageDialog(null, "Hello world!");

只需使用上面的代码,导入JOptionPane就可以了:

import javax.swing.JOptionPane;

该类有更多有趣的方法可以检出,比如输入对话框。这是documentation

JavaFX 解决方案有点复杂,因为它需要您设置框架并处理多个事件。

您可以查看其他问题SO: Popup window with table view in JavaFX 2.0。它使用指定的类Popupdocumentation)。