9

我的 Java 应用程序有多个框架。其中一些被设置为始终处于领先地位。但是,当用户打开另一个程序(比如说一个网络浏览器)时,我希望永远在顶部的框架移动到后台,让其他应用程序完全显示在屏幕上。

4

2 回答 2

4

创建您自己的窗口管理器。

创建一个实现WindowListenerWindowStateListener和的自定义窗口管理器WindowFocusListener。使用此管理器注册所有新框架,并在用户与框架交互时使用它将始终在顶部的框架带回前面。

听起来您的应用程序正在使用一些非常自定义的帧管理代码。我的猜测是,随着您继续开发应用程序,此窗口管理器将具有更多功能来管理用户界面。这不仅会为您提供解决问题的设计,还会为对此行为的任何更改或增强奠定基础。

但请记住,Java 无法控制操作系统对其他应用程序的操作。它甚至不能可靠地将框架置于所有操作系统中其他应用程序之上的前台。您将需要使用您将支持的操作系统来编写此窗口管理器,从而为您提供所需的行为。

于 2012-06-20T12:00:30.283 回答
1

我的 Java 应用程序有多个框架。其中一些被设置为始终处于领先地位。

不要那样做,使用CardLayout代替,如果你真的需要 end_user 操作然后使用

  • 选项窗格

  • 模态JDialog(或ModalityType使用AplicationModal

  • re_use JDialog (getContentPane.removeAll()) 以供下次使用

但是,当用户打开另一个程序(比如说一个网络浏览器)时,我希望永远在顶部的框架移动到后台,让其他应用程序完全显示在屏幕上。

这对最终用户来说可能很烦人,请改用FullScreen

注意最重要的休息是在评论中@Andrew Thompson

于 2012-06-20T12:07:05.890 回答