有没有办法将浏览器窗口从 Java 小程序警报窗口拉到前台/焦点?我在一个 html 页面中有一个小程序,它会在其中显示一个带有按钮的警报。当按下按钮时,我希望原始浏览器窗口从它所在的任何地方弹出(最小化,覆盖等)我相信有一种方法可以将 Java 连接到 Javascript 来做到这一点,但我不知道 Javascript。
这是Java小程序代码:
/** An applet that posts an alert and waits for the alert button to be pressed.
* Version 1 uses http://java.sun.com/products/plugin/1.3/docs/jsobject.html
*/
import netscape.javascript.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Bounce extends JApplet implements ActionListener {
JDialog dialog;
JSObject window;
String message;
public void paint(Graphics g) {
g.clearRect(0,0, 400,40);
g.drawString(message,40,20);
}
public void init() {
JFrame frame= null;
dialog= new JDialog(frame, "Bounce App");
JButton setupButton= new JButton("Bounce it back!");
setupButton.addActionListener(this);
JPanel contentPane= new JPanel();
contentPane.add(setupButton);
contentPane.setOpaque(true);
dialog.setContentPane(contentPane);
dialog.setSize(new Dimension(400, 110));
dialog.setVisible(true);
message= "This applet posts an alert panel.";
window= JSObject.getWindow(this);
// String[] params= { "An alert message" };
// window.call("alert", params);
// window.eval("alert('Important Alert!')");
}
public void actionPerformed(ActionEvent e) {
dialog.setVisible(false);
dialog.dispose();
System.err.println("button has been pushed; focus set");
message= "Somebody pushed my bounce-back button.";
JSObject document= (JSObject)window.getMember("document");
document.setMember("bgColor", "orange");
window.eval("focus()");
repaint();
}
}
这是 HTML 代码:
<HTML>
<HEAD><TITLE>The Reappearing Page</TITLE></HEAD>
<body bgcolor="#f0ffc0">
<H2>Make this page reappear</H2>
This page will start an applet (white box below) that sets up an alert.
Before you respond to the alert, hide the window you are reading right now,
using one of these methods:<ul>
<li> cover it with another window, </li>
<li> Hide it using a menu item, </li>
<li> Minimize it, or </li>
<li> move it to another workspace or desktop. </li>
</ul>
Then click on the button in the alert.
<P>
<EMBED type="application/x-java-applet;version=1.3" width="400" height="40"
align="baseline" code="Bounce.class" MAYSCRIPT=true
pluginspage="http://java.sun.com/products/plugin/1.3/plugin-install.html">
<NOEMBED>
No JDK 1.3 support for APPLET!!
</NOEMBED>
</EMBED>
<P>What is supposed to happen is that the main window
will emerge from wherever you hid it and reappear.
Since I don't know how to do this, it is your challenge to actually make it happen.
We need to be able to achieve this magic from any of the situations listed above.</P>
</body>