第9章 组件及事件处理
9.2窗口
一个基于GUI的应用程序 应当提供一个能和操作系统直接交互的容器,该容器可以被直接显示、绘制在操作系统所控制的平台上, 例如显示器上,这样的容器被称作GUI设计中的底层容器。Java提供的 Frame类的实例就是一个底层容器,即通常所称的窗口)见图91的右半部分( JDialog类的实例也是一个底层容器,通常所称的对话框,见后面的9.6节)。其他组件必须被添加到底层容器中,以便借助这个底层容器和操作系统进行信息交互。简单地讲,如果应用程序需要一个按钮,并希望用户和按钮交互,即用户单击按钮使程序做出某种相应的操作,那么这个按钮必须出现在底层容器中,否则用户无法看得见按钮,更无法让用户和按钮交互。 JFrame类是Container类的间接子类。当需要一个窗口时,可使用 JFrame或其子类创建一个对象。窗口是一个容器,可以向窗口添加组件。需要注意的是,窗口默认被系统添加到显示器屏幕上,此不允许将一个窗口添加到另一个容器中。
9.2.2菜单条、菜单、菜单项
菜单,单菜单项是窗口常用的组件,菜单放在菜单条里,菜单项放在菜单里。
①菜单条
JComponen类的子类 JMenubar负责创建菜单条,即 JMenubar的一个实例就是一个菜单条。
②菜单
Jcomponent类的子类Menu负责创建菜单,即Menu的一个实例就是一个菜单。
③菜单项
Jcomponent.类的子类 Menuitem负责创建菜单项,即 Menuitem的一个实例就是一个菜单项。
④嵌入子菜单
Jmenu是 Menuitem的子类,因此菜单本身也是一个菜单项,当把一个菜单看作菜单添加到某个菜单中时,称这样的菜单为子菜单
⑤菜单上的图标
为了使菜单项有一个图标,可以用图标类Icon声明一个图标,然后使用其子类 Imagelcon类创建一个图标,如:
Icon icon=new ImageIcon(“a.gif”);