【问题标题】:Keep Window in Back保持窗口在后面
【发布时间】:2014-06-11 19:32:16
【问题描述】:

这很可能是一个显而易见的问题,但我想知道如何将程序保留在所有其他窗口(桌面除外)之后?

在某种程度上,我试图实现与在前面保持窗口相反的效果。

这是一个例子:

    Window 1
   Window 2
  Random Window
 My App
Desktop

但是,我需要它,以便它始终靠在桌面上,因此除非您正在查看桌面本身,否则您无法与它进行交互。

【问题讨论】:

  • 我不确定您是否能够做到这一点,考虑到与任意应用程序的交互可能会受到限制,因此您的应用程序或它引用的代码将无法分辨其他应用程序窗口的位置.

标签: java jframe desktop-application


【解决方案1】:

public void toBack()here

如果此窗口可见,则将此窗口发送到后面,如果它是焦点或活动窗口,则可能导致它失去焦点或激活。 将此窗口置于堆叠顺序的底部,并将其显示在此 VM 中任何其他窗口的后面。如果此窗口不可见,则不会执行任何操作。某些平台不允许其他 Windows 拥有的 Windows 出现在其所有者下方。将尽一切努力将该窗口按堆叠顺序移动到尽可能低的位置;但是,开发人员不应假定此方法在任何情况下都会将此窗口移动到所有其他窗口的下方。

【讨论】:

  • 它会一直呆在那里,直到我转到一个新窗口(然后它会呆在那里),所以只需转到桌面并返回即可修复它。我现在得再试验一下!
【解决方案2】:

晚了 4 年,但如果你需要窗口始终留在后面,即使用户点击它,你也可以使用:

JFrame frame = new JFrame("");
frame.setFocusableWindowState(false);
frame.toBack();

setFocusableWindowState(false) 防止在单击时激活窗口。

【讨论】:

    猜你喜欢
    • 2018-12-18
    • 2017-10-31
    • 2017-09-25
    • 2013-05-03
    • 2011-06-30
    • 1970-01-01
    • 2014-04-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多