我尝试在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);
}
运行它,错误显示:
“警告”未定义
答案 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。它使用指定的类Popup
(documentation)。