我們使用部署在Kiosk類型環境中的Firefox 18.0.1運行簽名的小程序。 JDK和JRE都是JavaSE 7u11。簽名的jar讓我們可以執行所有沙盒applet通常無法爲其用戶執行的操作(漫遊本地磁盤,與打印機通信,竊取所有pr0n等)。Applet彈出窗口在對話框外部懸停警告圖標
該小程序和加載它的頁面共同創建一些HTML和JavaScript; JavaScript和applet會以幾乎無縫的方式來回傳遞。有時小程序會創建彈出式對話框;這些是由用戶點擊一個Java組件觸發的,或者是由用戶通過點擊一個「onclick」腳本點擊某個HTML小部件觸發的,該腳本告訴小程序進行對話。
在上個星期,我注意到一些applet的彈出對話框模糊不清。他們有一個小小的警告圖標掛外對話框:
圖標粘在對話框如果用戶移動它。將鼠標懸停在圖標上方會彈出一個「Java Applet窗口」工具提示,這非常有趣,因爲並不是所有的對話框都與它一起出現。
該快照中顯示的窗口是使用此測試代碼創建的。 (是的,有使用的JOptionPane較短的方式,但那就不是複製我們的實際代碼。一些對話框比其他人更有個性。)
import java.awt.BorderLayout;
import javax.swing.JApplet;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
public class WhereTheHellDoesTheIconComeFrom
{
private JPanel topPanel;
public WhereTheHellDoesTheIconComeFrom (JApplet applet) {
// Multiple panels with a text blob in each
JLabel exampleText = new JLabel ("some text here", JLabel.CENTER);
topPanel = new JPanel (new BorderLayout(5,0));
topPanel.add (exampleText, BorderLayout.CENTER);
// Create the options pane.
Object allpanels[] = new Object[] {
topPanel,
};
Object buttons[] = { "B1", "B2" };
JOptionPane optionPane = new JOptionPane (allpanels,
JOptionPane.PLAIN_MESSAGE,
JOptionPane.OK_CANCEL_OPTION,
null, // no icon built in
buttons,
buttons[0]); // select this button by default
// Ask it for the visible popup.
JDialog dialog = optionPane.createDialog(
SwingUtilities.getWindowAncestor(applet),
"This is the title text");
dialog.setResizable(false);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.pack();
dialog.setLocationRelativeTo(null);
dialog.setVisible(true);
// Modal dialog blocks on the previous line; at this point I can
// examine getValue() and make decisions, etc, etc.
}
}
我花了大約一小時擁抱了谷歌希望它能向我透露一些東西,但我在這裏找不到任何提及。這是Firefox的事情還是JRE的事情?或者,更好的問題:是什麼導致警告圖標出現在某些對話框中,而不是其他問題?
這是一個Firefox的東西。 – fmodos
@fmodos如果你能提供額外的信息(並且讓你的答案更長,我建議你做出答案)) – MadProgrammer
opss ...我的錯誤是,我在這篇文章中做了一個非常快速的閱讀,並且錯過了它只是從HTML事件發生的部分,無論如何,我只是做了一個快速的研究,下面的鏈接似乎解決了這個問題。 http://www.coderanch.com/t/416408/Applets/java/Java-Applet-Window-warning-shows – fmodos