1

我的小程序中通常有一个 JOptionPane 弹出窗口,a-la:

      Object[] options = {"Grade", "Save", "Cancel"};
      selection = JOptionPane.showOptionDialog(this,
      "Do you want to grade now or save your work to continue later?",
      "Grade Or Save",
      JOptionPane.DEFAULT_OPTION,
      JOptionPane.QUESTION_MESSAGE,
      null, 
      options,
      options[2]);

this指的是 JApplet 对象。

弹出窗口工作正常,一切正常,但偶尔它会出现在小程序后面而不是在它前面弹出。

4

2 回答 2

0

不知不觉中你没有传入父组件;特别是“this”进入showOptionDialog()。确保“this”实际上是父组件。

如果“this”指的是一个框架,您可以通过执行以下操作找到焦点所在的框架:

(伪代码)

myFrames[] = Frame.getFrames();

if ( myFrames[i].isFocused() ) 框架传入:)

于 2010-11-22T22:13:01.523 回答
0

要做的事情是找到作为框架的小程序的父级(它是隐藏的插件特定类型)并将该框架用作对话框所有者。你可以找到(Frame)SwingUtilities.getAncestorOfClass(java.awt.Frame.class, theApplet);

这将确保对话框保持在浏览器的顶部。但是,如果用户切换浏览器选项卡,对话框不会隐藏。

于 2010-11-30T19:32:07.353 回答