【问题标题】:How to bring Frame to front in applet?如何在小程序中将 Frame 置于最前面?
【发布时间】:2014-02-27 01:48:30
【问题描述】:

我有一个小程序和一个框架。我希望在启动小程序时打开此框架。

public class MyApplet extends JApplet {
    public void init() {
        Frame frame = new JFrame("myframe");
        frame.setVisible(true);
        frame.toFront();
    }
}

这不起作用。浏览器窗口在顶部,而框架被隐藏。

尝试了How to bring a window to the front?中写的所有内容

【问题讨论】:

  • 到目前为止,您已经询问了 13 个questions 并且只接受了 3 个答案。您可能需要更改该比率,以免您被视为help vampire
  • “尝试了如何将窗口放在前面?” 真的吗? This answer 明确提到了setAlwaysOnTop(..),所以要么您没有尝试该页面上的所有内容,要么您选择了一个建议您已经尝试过的答案。是吗?
  • 哦,所以你终于注意到了那条评论。对你有好处。遗憾的是,您无法一直关注链接的答案。 super.setAlwaysOnTop(true); super.toFront(); super.requestFocus(); super.setAlwaysOnTop(false); 第一个引用的语句是什么?
  • 嗯,是的,这也有效。假设我没有完整地尝试过,只是碎片。好吧,叫我吸血鬼吧。
  • 也许更好的整体方法是在小程序本身内使用JDesktopPane。它绕过了“落后”问题,并提供了一个自动“滚动内部框架/对话框”离开页面的功能。但是,如果你想“抽象”超出我能理解的任何问题,我确实得到了对你的回复感到沮丧。当我问一个问题时,无论它看起来多么愚蠢或微不足道,我都希望尽可能地看到答案。如果我的问题对你没有意义,请问我的意思。 (是我的建议。)

标签: java swing applet jframe awt


【解决方案1】:

试试 frame.setAlwaysOnTop(true):

设置此窗口是否应始终位于其他窗口之上。

【讨论】:

  • ".. 应该总是在其他窗口之上。" 是的.. 当然除了那些 其他窗口 也调用它的时候。然后他们将其推向最高位置。在那种类型的战斗中,我敢打赌从 JRE 启动的框架将输给本机可执行文件 - 因为我怀疑 Oracle 在破解操作系统以实现“始终处于领先地位”方面做了很多事情,而通常的本机可执行文件通常会extreme 长度以保持始终处于最上面的状态。
  • java.security.AccessControlException: access denied ("java.awt.AWTPermission" "setWindowAlwaysOnTop") 哦,当然,它还需要一个all-permissions 小程序才能进入永远领先的竞争。我不了解你,但是当提示提供对 PC 的完全访问权限时,我不会单击“确定”,只是为了获得一个浮动在网页顶部的框架。 ;)
  • 如果可能的话,我认为您还需要将小程序焦点设置为 false。
【解决方案2】:

显而易见的解决方案是使用小程序打开框架。相反,请从使用 Java Web Start 的链接启动框架。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 2015-06-28
    • 2010-10-02
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    相关资源
    最近更新 更多