- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 图形程序设计入门 北京邮电大学-计算机学院 图形程序设计入门-学习目标 图形程序设计类的层次结构 框架(Frame) 创建框架, 框架居中, 在框架中添加组件 布局管理器 FlowLayout, GridLayout, BorderLayout 在面板上绘制图形 paintComponent 方法 使用 Colors, Fonts, 和 Font Metrics类 绘制几何图形 直线, 矩形, 椭圆, 圆弧, 和多边行 事件驱动程序设计 事件源, 监听器, 监听器接口 10.1 引言 目前,客户/服务器模型和基于Web的应用程序都使用图形用户界面GUI。 AWT(Abstract Window Tookit):重型组件; 对Java运行的每一个平台,AWT的组件通过他们各自的代理映射成平台特定的组件。 Swing(Swing component): 轻型组件; 大多数的组件都是用Java直接编写的,更少依赖于平台,更少使用本地的GUI资源。 10.2 Java 图形API的图形类层次结构 图形类的分类 容器类(container class :用来包含其他组件。 JFrame、JPanel和JApplet等 组件类(component class) JButton、JTextField…,JComponet类的子类。 辅助类(helper class):是组件和容器用于绘制和放置对象的。 Color、Font、FontMetrics、Dimension和LayoutManager等 AWT和Swing 类JFrame、JApplet、JDialog、JComponent以及他们的子类都存放在包javax.swing中, 上图中的其它类都组织在java.awt包内。 大多数的Swing组件的名字前都有J,以区别AWT的组件。 两者的附件不能混用。 JComponent类及其子类 AWT组成 下面就要开始学习激动人心的图形化编程了… 先从容器类开始吧! 10.3 框架(Frame) 框架是一个不包含在其他窗口中的窗口。 框架存放了包含Java中图形应用程序的用户界面组件 框架类被用作创建窗口 UI 组成 10.3.1 创建框架 问题 非默认包中的类是否能够引用默认包中的类? 最新的开发工具和jdk中是不允许的 为了提高程序的规范性,强制用包来进行类的管理 10.3.2 框架居中 默认情况下,框架在屏幕的左上角显示 要在指定的位置显示框架,需要使用JFrame类中的setLoation(x,y)方法。该方法把框架的左上角放置在位置(x,y)处 学习下列方法: 1)管理GUI尺寸的类:Dimension,利用它的对象可用于管理屏幕或框架的尺寸 2)获取尺寸的方法: a 获取屏幕尺寸:Dimension screenSize Toolkit.getDefaultTookit .getScreenSize ; 其中Toolkit类位于java.awt包中 b 获取框架尺寸:Dimension frameSize frame.getSize 3)设置框架显示位置的方法 setLocation x,y 框架居中(续) 10.3.3 在框架中添加组件 10.4 布局管理器 Java不需要使用硬编码安排组件的位置,而使用布局管理器,它提供了一层抽象,自动把用户界面映射到所有的窗口系统 Java的UI组件在容器中放置,每个容器中都有布局管理器来安排UI组件的位置 几个重要的方法 getContentPane 获得容器 setLayout 给容器设置布局管理器 布局管理器的种类 FlowLayout GridLayout BorderLayout BoxLayout GridBagLayout CardLayout 10.4.1 测试 FlowLayout 布局管理器 在这个例子中,通过FlowLayout布局管理器在框架中排列组件,管理器的对齐方式、水平间距、垂直间距都是指定的 一、学习使用Container对象(即框架的内容窗格对象)设置布局管理器和添加组件 创建一个非匿名的Container对象: Container container frame.getContentPane ; 设置布局管理方式: container.setLayout new FlowLayout FlowLayouy.CENTER, 10,20 ; 添加组件 container.add new JButton 1 ; 二、学习创建框架的第二种使用方法 使用继承的方法 在子类的构造方法中,实现上面的三条语句。 三、import语句: Import javax,swing.JFrame; Import
文档评论(0)