ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:51.51KB ,
资源ID:2930963      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2930963.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(第十五章 建立窗口和菜单.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

第十五章 建立窗口和菜单.docx

1、第十五章 建立窗口和菜单第十五章 建立窗口和菜单返回主页上一章 下一章15.1 Java窗口15.2 向窗口增加菜单15.3 处理菜单选项上的事件15.4 有关菜单的几个技巧15.5 使用适配器15.6 打印15.7 使用剪贴板进入DOS状态写字版绘图板Tomcat_JSP服务器 在C盘,在D盘进入Editplus15.1 Java窗口 本章开头 下一节 AWT根据类的层次定义窗口,并在每一层添加了特定的功能。在这些窗口中,用得最普遍的是在小应用程序派生于Panel类的窗口和派生于Frame类的独立窗口。这些窗口的功能大多数来自于它们的父类。因此,与Panel和Frame这两个类相关的类结构的

2、描述是我们理解它们的基础。在图15-1中展示了Panel和Frame类的结构。现在让我们分别来看一下这些类。15.1.1 组件(Component) 在AWT类层次结构的顶部是Component类。Component类是一个封装了一个可视组件的所有属性的抽象类。在屏幕上显示的所有用于用户交互的用户界面元素都是Component类的子类。这个类定义了一百多个用于事件管理的公共方法,这些事件包括鼠标或键盘的输入,窗口位置或大小的改变以及重绘窗口。一个Component对象可以保存当前的前景色、背景色以及被选择的文本的字体。图15-1 Panel 和Frame 的类层次结构 Container类是C

3、omponent类的子类。这个类有一些附加方法,允许别的Component对象嵌套在Container类的对象中。当然,其他的Container对象可以被存放在一个Container对象中(因为它们也是Component类的实例)。这就形成了一个多层包容机制。容器主要负责布置它所包含的组件的位置。15.1.2 面板(Panel) Panel类是Container类的一个具体的子类。它没有添加任何新的方法;它只是简单的实现了Container类。一个Panel对象可以被看作是一个递归嵌套的具体的屏幕组件。Panel类是Applet类的子类。当屏幕输出直接传递给一个小应用程序时,它将在一个Pane

4、l对象的表面被画出。实际上,一个Panel对象是一个不包含标题栏、菜单栏以及边框的窗口。这就是为什么在浏览器中运行一个小应用程序时,你看不见标题栏、菜单栏以及边框的原因。而当你用小应用程序查看器来运行一个小应用程序时,小应用程序查看器提供了标题和边框。 其它的组件可以通过调用Panel类的add()方法被加入到一个Panel对象中,这个方法是从Container类继承来的。一旦这些组件被加入,那么你通常就可以通过调用在Component类中定义了的setLocation( ), setSize( )以及setBounds( )方法来改变这些组件的位置和大小。15.1.3 窗口(Window)

5、窗口类产生一个顶级窗口(Window)。顶级窗口不包含在任何别的对象中,它直接出现在桌面上。通常,你将不会直接产生Window对象。相反,你将使用Window类的子类,这就是Frame类。15.1.4 框架(Frame) Frame类封装了窗口通常所需要的一切组件,它是Window类的子类,并且拥有标题栏、菜单栏、边框以及可以调整大小的角。如果你在一个小应用程序中创建了一个Frame对象,它将包含一个例如“Java Applet Window”的警告消息给用户,表示一个小应用程序窗口已经被创建。这个消息警告用户,他们看见的窗口是由小应用程序启动的,而不是被运行在他们机器上的软件所启动(一个伪装

6、基于主机的应用程序的小应用程序将可以用于在用户不知道的情况下获得密码和其他敏感信息)。当一个Frame窗口被程序而不是小应用程序创建时,就创建了一个通常的窗口。15.1.5 画布(Canvas) 虽然画布不是小应用程序和frame窗口的层次结构的一部分,但是Canvas这种类型的窗口是很有用的。Canvas类封装了一个你可以用来绘制的空白窗口。在教材的第11章已经学过有关Canvas的例子。15.1.6 用Frame窗口工作 在小应用程序之中,你最常创建的窗口来自于Frame类。你将用它在小应用程序中创建子窗口,在应用程序中创建顶级或子窗口。正如前面所提到的那样,它会生成一个标准样式的窗口。F

7、rame的构造函数如下所示:Frame( )Frame(String title) 第一种形式用于创建一个不含标题的标准窗口。第二种形式用于创建一个含有标题的窗口,这个标题是由title变量指定的。请注意你不能在创建时指定窗口的大小,你必须在窗口被创建后再设置窗口的大小。 这里有几个方法在你使用Frame窗口时将会用到。下面我们举例说明。15.1.7 设置窗口大小setSize( )这个方法用来设置窗口的大小,如下所示:void setSize(int newWidth, int newHeight)void setSize(Dimension newSize) 窗口的新的大小在变量newWi

8、dth和newHeight中被指定,或者在来自Dimension类的newSize对象的width和height这两个成员变量中被指定。这些大小使用像素为单位。getSize( )这个方法被用来获得当前的窗口大小,如下所示:Dimension getSize( ) 这个方法返回一个Dimension对象,在这个对象的成员变量width和height中存放着当前窗口的大小。15.1.8 隐藏和显示一个窗口 当一个frame窗口被创建以后,这个窗口默认是不可见的,除非你调用它的setVisible( )方法。如下所示:void setVisible(boolean visibleFlag) 如果这

9、个方法的参数是true,那么调用它的组件是可见的。否则,就被隐藏。15.1.9 设置窗口标题 你可以通过使用setTitle( )方法来改变一个frame窗口的标题。如下所示:void setTitle(String newTitle) 在这里,参数newtitle是窗口的新标题。15.1.10 关闭frame窗口 当使用一个frame窗口时,你的程序必须在它被关闭时通过调用setVisible(false)方法来将窗口从屏幕中除去。为了截获窗口关闭事件,你必须实现WindowListener监听器接口的windowClosing( )方法。在windowClosing( )方法中,你必须将窗

10、口从屏幕中除去。15.1.11 在小应用程序中创建一个frame窗口 简单地通过创建一个frame类的实例来创建一个窗口是可能的,但是你可能很少会这样做,因为对于这样的窗口你没有什么可以做的。例如,你将不能接受和处理在这个窗口中发生的事件或者不能简单的输出信息给它。大多数情况下,你将创建一个frame类的子类。这样做,你将会重载frame类的方法和事件处理。 在小应用程序中创建一个新的基于frame的窗口是很容易的。首先,创建一个frame类的子类。接下来,重载任何一个标准窗口方法,比如init( )方法,start( )方法,stop( )方法和paint( )方法。最后,实现windowL

11、istener这个监听器接口的windowClosing( )方法,在这个方法中,当窗口被关闭时,调用setVisible(false)方法将窗口从屏幕中除去。 一旦你已经定义了一个frame类的子类,你就可以创建这个类的对象了。这就会产生一个基于frame的窗口,但是它在初始化中被设置为不可见的。你可以通过调用setVisible( )方法来使它可见。当这个窗口被创建后,它就有了一个默认的高度和宽度。你可以通过调用setSize( )方法来显式改变窗口的大小。 下面的小应用程序创建了一个叫做SampleFrame的Frame类的子类。这个子类的窗口在AppletFrame类的init()方法

12、中实例化。请注意SampleFrame类调用了Frame类的构造函数。这将创建一个标准的frame窗口,它的标题由title参数决定。这个例子重载了小应用程序窗口的start()方法和stop()方法,所以在这两个方法中相应地显示和隐藏子窗口。这样当你在结束小应用程序时,关闭窗口,或者在浏览器中转移到另一页时,窗口都可以自动地被移去。而当你重新回到小应用程序时子窗口又被显示了出来。例15-1/ exa15_1.java, Create a child frame window from within an applet.import java.awt.*; import java.awt.ev

13、ent.*;import java.applet.*;/* */ Create a subclass of Frame.class SampleFrame extends Frame SampleFrame(String title) super(title); / create an object to handle window events MyWindowAdapter adapter = new MyWindowAdapter(this); / register it to receive those events addWindowListener(adapter); public

14、 void paint(Graphics g) g.drawString(This is in frame window, 10, 40); class MyWindowAdapter extends WindowAdapter SampleFrame sampleFrame; public MyWindowAdapter(SampleFrame sampleFrame) this.sampleFrame = sampleFrame; public void windowClosing(WindowEvent we) sampleFrame.setVisible(false); / Creat

15、e frame window.public class exa15_1 extends Applet Frame f; public void init() f = new SampleFrame(A Frame Window); f.setSize(250, 250); f.setVisible(true); public void start() f.setVisible(true); public void stop() f.setVisible(false); public void paint(Graphics g) g.drawString(This is in applet window, 10, 20); 这个例子的输出如下所示:图15-2 Frame Window示例教材例子1见Ex

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1