- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
秦学礼 JAVA程序设计实用教程 秦学礼 * 秦学礼 * JAVA程序设计实用教程(8) 秦学礼 * * 第8章 窗口、菜单和对话框 8.1窗口及事件 8.2 菜单 8.3 对话框 秦学礼 * * 8.1窗口及事件 窗口的构造方法: Frame(); 创建一个没有标题的窗口。 Frame(String title); 创建一个标题为title的窗口。 常用方法: setBackground(Color c); 根据参数c设置窗口的底色。 setVisible(boolean b); 根据参数b设置窗口是否可见,值为true(可见)或者false(不可见)。 pack(); 用紧凑方式显示窗口。如果不用该方法,窗口初始出现时看不到窗口中的组件,当调整窗口大小时才能看到这些组件。 setTitle(String title); 设置窗口的标题是title。 getTitle(); 获得窗口的标题。 setResizable(boolean b); 设置当前窗口是否可调整大小(默认是可调整),值为true(可调整)或者false(不可调整)。 setSize(w,h); 设置窗口的大小。 setBounds(x,y,w,h); 设置窗口的坐标和大小。 秦学礼 * * 上一章已经介绍了窗口的事件(WindowEvent)中的windowClosing事件是关闭窗口的,其实总共有7个窗口事件: windowActivated(); 窗口被激活。 windowDeactivated(); 窗口失活(其他窗口激活)。 windowClosed(); 窗口已被关闭。 windowClosing(); 窗口正被关闭。 windowOpened(); 窗口已被打开。 windowIconified(); 窗口被最小化为图标。 windowDeiconified(); 窗口由图标恢复。 秦学礼 * * [例8.1] 一个使用窗口事件的简单例子。运行结果如图8.1所示。 算法分析: (1)定义一个窗口类。 (2)添加窗口的打开、关闭和激活等7个事件处理方法。 源程序(javajc\ch08\ windowevent.java) 程序分析: 在本例中,把事件监听者注册给WinLis类处理。windowClosing()事件中使用了dispose()方法,用来释放窗口和其上的组件所占用的资源。然后关闭窗口。 在例8.1里的7个窗口事件并不总是全部使用,有时候只使用其中几个事件。比如说例8.2。 秦学礼 * * [例8.2] 另外一个使用部分窗口事件的例子。运行结果如图8.2所示。 算法分析: (1)定义一个窗口类。 (2)添加窗口事件的其中四个事件。 源程序(javajc\ch08\ WindowListener_Example.java) 程序分析: 请注意,本例中只重写了4个事件,另外三个事件windowOpened()、windowIconified()和windowDeiconified()并没有重写和使用,但是在程序中还是一定要写出来,不然程序就会出错。但是如果使用的是WindowAdapter类,不使用的事件就不需要写出来了。 秦学礼 * * [例8.3] 一个使用WindowAdapter类的窗口事件例子。运行结果仍如图8.2所示。 算法分析: (1)定义一个窗口类。 (2)添加windowActivated 等4个窗口事件。 源程序(javajc\ch08\ WindowAdapter_Example.java) 程序分析: 请注意比较例8.3和例8.2程序里的区别,它们的运行结果是一样的,但是所使用的事件类是不一样的,例8.3使用的是WindowAdapte类,没有使用的3个窗口事件就不需要写出来。这里使用的是extends关键字。 秦学礼 * * 8.2 菜单 菜单是图形用户界面的重要组成部分,它是由菜单条(MenuBar)、菜单(Menu)、菜单项(MenuItem)和复选菜单项(CheckboxMenuItem)等组成的。它们的继承关系如图8.3所示。 图8.3 菜单栏类的继承关系 秦学礼 * * 8.2.1 为窗口加入菜单和定义二级菜单 菜单与其他组件不同,无法直接添加到容器的某一位置,也无法用布局管理器对其加以控制,它由以下概念支撑: 1.菜单条(MenuBar) Java.awt包中的MenuBar类是负责创建菜单条,即MenuBar类的
文档评论(0)