第十三章 第五节 关于WindowManager的一些话

第五节 关于WindowManager的一些话

JFace包含一个叫WindowManager的类[2],它并不会控制窗口的外观,也不会管理用户和窗口的交互,而是将窗口编组,这样你就可以迭代的访问它们或者将它们整组的关闭。WindowManager的实例拥有窗口,也可以同时可选的拥有其他WindowManager的实例。WindowManager提供了两种构造函数,在表13-1中列出:

表13-1:WindowManager的构造函数

构造函数

描述

WindowManager()

构造一个根窗口管理器(也就是没有父亲的窗口管理器)

WindowManager(WindowManager parent)

构造一个窗口管理器,作为一个父亲窗口管理器的的孩子

绝大多数WindowManager的方法只对它自己产生效果,除了close()方法会一连串影响到它所有的孩子WindowManger。表13-2列出了WindowManager的方法。

表13-2:WindowManager的方法

方法

描述

void add(Window window)

将window表示窗口添加到这个WindowManager中

boolean close()

关闭属于这个WindowManager的所有窗口,以及属于它所有孩子WindowManager的窗口。当任何一个窗口关闭失败时,停止关闭并且返回false,否则返回true

int getWindowCount()

返回属于这个WindowManager的窗口的数目

Window[] getWindows()

返回一个数组,其元素是属于这个WindowManager的所有的窗口

void remove(Window window)

将window表示的窗口从这个WindowManager中移去

使用WindowManager时,构造一个实例,添加你的窗口,然后适当的调用它的方法。下面的代码创建了一个WindowManager,向里面加入了三个窗口,然后把它们全都关闭,如果关闭失败的话则打印一个诊断信息:

WindowManager wm = new WindowManager();
wm.add(windowOne);
wm.add(windowTwo);
if (!wm.close())
  System.err.println("Windows failed to close");


[2] 译注:原文是JFace includes a class called WindowManager, which isn't a drop-in for IceWM, sawfish, or Enlightenment.

原文地址:https://www.cnblogs.com/ols/p/2173399.html