资源描述
Java的窗体应用程序基础,机电工程系裴清福,到目前为止,我们主要学习的是Java程序语言在结构化程序的基础,以及类和对象的概念和编写语法,尚未正式介绍具有“图形化用户接口”(GUI)模式的“窗体程序”。接下来我们就主要学习Java的窗体程序的相关问题,Java窗口程序的概念与AWT和Swing组件类库,从JDK1.0开始,Java就提供了AWT(AbstractWindowToolkit)类库(java.awtpackage),这些类中有一大部分我们称之为“组件类”,它们所产生的对象大多都能加入到屏幕显示区域之中,而这些对象我们称之为“组件”,并可用“layoutmanager”为这些组件做版面布局的管理。,Java窗口程序的概念与AWT和Swing组件类库,这些“组件”依它们的功能不同,主要分为两大类:一种是可以盛装组件的“容器”(Container),另一类则无法盛装组件的“一般组件”。但“容器”中只有一些可以直接独立浮动在屏幕上,例如:Frame,其他不能独立浮动在屏幕上的“容器”和一般组件就只能依附在它上面,借此才能显示在屏幕上。利用这些组件类:窗口框架(Frame)、按钮、文本标签、文本输入框等等,能让程序开发者轻松建立图形化用户接口。,Java窗口程序的概念与AWT和Swing组件类库,JDK1.1以后,Java有新增了Swing类库(javax.swingpackage),它也提供开发GUI模式的程序的组件类,但是它并非用来完全取代AWT组件,新版本的JDK还是支持AWT组件,只是相比之下,早期所提供的AWT组件功能较少,其所占的内存资源也较少,我们在建立窗口程序时,可以根据所需的功能自行选择。,Java窗口程序的概念与AWT和Swing组件类库,Java提供的窗口组件有两大类,而且功能相似的组件类其名称又非常相似,但我们可以从类的名称,轻易地分辨出它们是属于哪一类的组件。因为Swing组件类即使和AWT组件非常相似,Swing的类名称开头会多出一个“J”字母。,Java窗口程序的概念与AWT和Swing组件类库,此外,这两类组建其实可以混合在一个窗口应用程序中,不过使用时要注意:Swing组件不要和AWT组件重叠在一起,因为这两种组件范围若有重叠的部分,即使Swing组件是后来加入的,AWT组件还是会显示在上面的图层。,Java窗口应用程序的程序代码结构,由于Frame或JFrame组件只是一个空白的窗口框架,我们所要开发的窗口应用程序通常在窗口内会需要许多组件。因此我们通常不直接使用Frame类产生组件,而是要声明一个继承自Frame的类,并在里面加入组件作为它的成员,然后再利用该类去产生一个“拥有所需的组件内容与功能的窗口”。,Java窗口应用程序的程序代码结构,继承自Frame组件类的程序代码结构继承自JFrame组件类的程序代码结构,Java窗口应用程序的程序代码结构,以上两种程序代码结构主要差异在于:Frame内的组件是直接加入该Frame内的,JFrame的组件则是加入JFrame中的ContentPane中。这个差别是源于Frame和JFrame的窗口图层结构的差异。,Frame窗口的层次结构,Frame窗口的层次结构,Frame窗口结构比较简单,它的“窗口标题行”、“主菜单”和“内容面板”都可以是为该Frame内直接划分出来的几个区域,所以放在“主菜单”内的“主菜单条(MenuBar)”以及其他放置在“内容面板”区的组件,都是直接放置于此Frame窗口之中。,JFrame窗口的层次结构,JFrame窗口的层次结构,一个空白的JFrame窗口,至少就已经包含了“RootPane”、“LayeredPane”、“GlassPane”、“ContentPane”这几个组件,至于“MenuBar”是根据需要才加入实例组件。,JFrame窗口的层次结构,“RootPane”是唯一直接加入到JFrame中的组件,而“RootPane”组件中包含了“LayeredPane”和“GlassPane”两个组件,“LayeredPane”则一开始就包含了“ContentPane”组件,另外在“ContentPane”上方还可以放置一个“MenuBar”组件。,编写简单的Java窗口程序,使用Frame组件类使用JFrame组件类,
展开阅读全文