【问题标题】:Prevent a JWindow to remain always on top防止 JWindow 始终保持在顶部
【发布时间】:2013-02-21 11:41:06
【问题描述】:

我创建了一个JFrame 和一个JWindow。我的问题是,当我单击另一个应用程序时,我的 JFrame 传递到应用程序后面,但我的 JWindow 却始终位于顶部。 我试图在我的JWindow 上调用setAlwaysOnTop(false),但这并没有改变任何东西。 我希望JWindow“跟随”JFrame.

这是我的测试代码:

public class WindowAlwaysOnTop {
    public static void main(String[] args) {
        final JFrame frame = new JFrame();
        frame.setSize(new Dimension(400, 400));
        final JWindow window = new JWindow(frame);
        window.setAlwaysOnTop(false);
        window.setSize(new Dimension(200, 200));
        frame.setVisible(true);
        window.setVisible(true);
    }
}

【问题讨论】:

  • 我的代码没有具体问题。
  • @paranoia25 使用 JDK7 对其进行了测试,对我来说运行良好。
  • 谢谢!你是对的。使用JDK7而不是jre 1.6.0_32 6解决问题

标签: java swing window jframe always-on-top


【解决方案1】:

JRE 1.6.0_32 出现此问题,JDK7 已解决。

【讨论】:

  • JRE 不是开发环境。如果您使用 JRE,它根本不应该工作。 JDK 就是您所追求的。 p.s.刚刚用 JDK6u40 运行你的代码,它运行良好
  • 这应该是一个答案吗?看起来应该是edit to the question。
  • 我可以删除答案并编辑评论。没问题。但在这种情况下,我无法将此问题标记为已解决,可以吗?
【解决方案2】:

不要使用 JWindow。

改为使用 JDialog。只需确保在创建对话框时将框架指定为父级。如果您不喜欢标题栏,可以使用未装饰的对话框。

【讨论】:

  • 我已经想到了这个解决方案。但在我的情况下,它与我的问题不匹配:我必须在框架顶部有一个窗口并通过窗口看到框架。而且我必须在窗口顶部显示对话框!而且我必须确定这个确切的堆栈顺序:对话框位于框架顶部的窗口顶部......
猜你喜欢
  • 2021-12-09
  • 2015-02-08
  • 1970-01-01
  • 2011-06-24
  • 2018-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多