第七章Java的图形用户界面设
第七章 Java的图形用户界面设计
AWT与 Swing AWT java抽象窗口工具集( Abstract Window Toolkit,简称AWT) Swing Swing属于 JavaTM Foundation Classes(简 称JFC)的一部分,JFC包含了一组帮助程序员 创建图形用户界面的功能。AWT功能有限,因 此在后来的]DK版本中,又提供了功能更强的 Swing
AWT与Swing ▪ AWT ▪ Java抽象窗口工具集(Abstract Window Toolkit,简称AWT) ▪ Swing ▪ Swing属于JavaTM Foundation Classes(简 称JFC)的一部分,JFC包含了一组帮助程序员 创建图形用户界面的功能。AWT功能有限,因 此在后来的JDK版本中,又提供了功能更强的 Swing
AWT类与继承关系 Component Button 其他组件 Checkbox Menucomponent Container TextComponent MenuBar Menuitem TextArea TextField 不独立 独立 Menu Panel Window AppletFrame Dialog
AWT类与继承关系 Component Container Panel Applet Window Frame Dialog Button TextField TextArea TextComponent Checkbox MenuComponent Menu MenuBar MenuItem 其他组件 不独立 独立
SWING中主要类的 继承关系 ava,awt.C。二 taver avax.日wi二g. JComponent JTex=Componen- 二 extAl也a 二 ext Fle1a JPasswordFlela 二Ea1 comPare Ahg-yactB,t ton Bane工 ToggleButton JCHec<Box J Combobox 三ut:on JKaoloBu-tov JLabel MEnuiTem LAyered=ane ULla- JRad-osuz.=en TO工Ea CRec<oxMen-tem MenuE上 UMem UPOpurMe=: PAne工 SCrollbAr JScvOllPave Js1ae上 JTable 可 Separator Txe也 JProgressBar J。。:Pane JSplitPaze
SWING中主要类的 继承关系
Swing与AWT不同 Swing组件在实现时不包含任何本地 ( native)代码 Swing组件可以不受硬件平台的限制,而具 有更多的功能 Swing被称为“轻量级( lightweight)"组件 AWT称为“重量级( heavyweight)"组件 “重量级”组件与“轻量级”组件一同使用时 如果组件区域有重叠,则“重量级”组件总是 显示在上面 Swing组件的是具有状态( state)的组件
Swing与AWT不同 ▪ Swing组件在实现时不包含任何本地 (native)代码 ▪ Swing组件可以不受硬件平台的限制,而具 有更多的功能 ▪ Swing被称为“轻量级(lightweight)”组件, AWT称为“重量级(heavyweight)”组件 ▪ “重量级”组件与“轻量级”组件一同使用时, 如果组件区域有重叠,则“重量级”组件总是 显示在上面 ▪ Swing组件的是具有状态(state)的组件
容器 Java的图形用户界面由组件构成,例如按 钮( button)、文本输入框( textfield) 标签(labe)等都是组件,其中有一类特 殊的组件称为容器( container),例如框 架( frame)、面板( panel)等。 容器是组件的容器,各种组件(包括容器) 可以通过add(方法添加到容器中
容器 ▪ Java的图形用户界面由组件构成,例如按 钮(button)、文本输入框(textfield)、 标签(label)等都是组件,其中有一类特 殊的组件称为容器(container),例如框 架(frame)、面板(panel)等。 ▪ 容器是组件的容器,各种组件(包括容器) 可以通过add()方法添加到容器中
顶层容器 ■顶层( Top level)容器 所有组件都必须包含在某个容器中,而有些容器是可 以嵌套的,在这个嵌套层次的最外层,必须是一个顶 层( Top level)容器 四种顶层容器 JFrame、 JApplet、 JDialog和 Jwindow ■ J Frame是一个带有标题行和控制按钮(最小化、恢复 /最大化、关闭)的独立窗口,创建应用程序时需要使 用 JFrame。创建小应用程序时使用 JApplet,它被包 含在浏览器窗口中。创建对话框时使用] Dialog JWindow是一个不带有标题行和控制按钮的窗口,因 此通常很少使用
顶层容器 ▪ 顶层(Top level)容器 ▪ 所有组件都必须包含在某个容器中,而有些容器是可 以嵌套的,在这个嵌套层次的最外层,必须是一个顶 层(Top level)容器 ▪ 四种顶层容器 ▪ JFrame、JApplet、JDialog和Jwindow ▪ JFrame是一个带有标题行和控制按钮(最小化、恢复 /最大化、关闭)的独立窗口,创建应用程序时需要使 用JFrame。创建小应用程序时使用JApplet,它被包 含在浏览器窗口中。创建对话框时使用JDialog。 JWindow是一个不带有标题行和控制按钮的窗口,因 此通常很少使用
JFrame创建应用程序 ■程序7-1 JFrameDemo Press me
JFrame创建应用程序 ▪ 程序7-1
内容窗格 顶层容器都有一个内容窗格( Content pane) 顶层容器中除菜单之外的组件都是放在这 个内容窗格中
内容窗格 ▪ 顶层容器都有一个内容窗格(Content Pane) ▪ 顶层容器中除菜单之外的组件都是放在这 个内容窗格中
将组件放入内容窗格 通过顶层容器的 getContentPane()方法获得 其缺省的内容窗格,然后将组件添加到内 容窗格中 Container contentPane= frame getContent Panel contentPane. add(button, BorderLayout CENTER) frame. getContentPane(). add(button, BorderLayout CeNTer);
将组件放入内容窗格 ▪ 通过顶层容器的getContentPane()方法获得 其缺省的内容窗格,然后将组件添加到内 容窗格中 ▪Container contentPane = frame.getContentPane(); contentPane.add(button, BorderLayout.CENTER); ▪frame.getContentPane().add(button, BorderLayout.CENTER);