第14章 GUI编程.doc

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十四章 GUI编程 图形用户界面(Graphics user interface, GUI)是指用图形的方式,借助菜单、按钮等标准界面元素和鼠标操作,帮助用户方便地向计算机系统发出指令、启动操作,并将系统运行的结果以图形方式显示给用户的技术。 由于用户界面设计质量的好坏直接影响软件的使用,Java语言对此也十分重视,几乎在JDK每个新的版本中,都增加了一定的GUI程序设计新技术或功能,Java语言的GUI发展始终保持着较好的连贯性和兼容性。 目前Java主要提供了两个处理图形用户界面的类库:java.awt和javax.swing。 AWT:抽象窗口工具集(Abstract Windows Toolkit),由于Java代码可以在不同的系统平台运行,而不同平台的图形界面外观设计各有差异,所以Java程序的图形用户界面在不同的平台上可能出现不同的运行效果,其外观取决于具体的平台,所以称AWT是一个抽象的工具集。 Swing:Swing是在AWT的基础上构建的,提供了比标准AWT组件更强大和灵活的功能。与AWT组件不同的是,Swing组件不是由特定的平台代码实现,而是纯粹的Java代码,因此能够实现与平台的无关(此类组件一般被称为轻量级组件)。 利用GUI类库设计和实现图形用户界面的工作主要有两个:一是应用的外观设计,即创建组成图形界面的各部件,指定其位置和属性关系,根据需要进行排列,从而构成完整的图形用户界面的物理外观;二是与用户的交互处理,包括定义图形用户界面的事件以及各部件对不同时间的响应处理。 那现在开始就先讲AWT。AWT类包含在java.awt包中,主要包括用户界面组件、事件处理模型、图形和图像工具、布局管理器等。Java.awt包中的主要类及组件类的继承关系如图 先来个最简单的例子 public?class?TestPanel { public?static?void?main(String[]?args) { Frame?f?=?new?Frame(测试窗口); //创建一个Panel对象 Panel?p?=?new?Panel(); //相Panel对象中添加两个组件 p.add(new?TextField(20)); p.add(new?Button(单击我)); f.add(p); //设置窗口的大小、位置 f.setBounds(30,?30?,?250,?120); //将窗口显示出来(Frame对象默认处于隐藏状态) f.setVisible(true); } } 然后我讲下布局管理器AWT中分为 FlowLayout BorderLayout CardLayout GridLayout GridBagLayout 这五种 Swing的话再加上BoxLayout 顺序布局(FlowLayout)是Panel容器的缺省布局策略,即将加入容器中的组件依次从左至右,从上至下排列,适用于组件个数较少的情况。 public?class?TestFlowLayout { public?static?void?main(String[]?args) { Frame?f?=?new?Frame(测试窗口); //设置Frame容器使用FlowLayout布局管理器 f.setLayout(new?FlowLayout(FlowLayout.LEFT?,?20,?5)); //向窗口中添加10个按钮 for?(int?i?=?0;?i??10?;?i++?) { f.add(new?Button(按钮?+?i)); } //设置窗口为最佳大小 f.pack(); //将窗口显示出来(Frame对象默认处于隐藏状态) f.setVisible(true); } } pack()方法非常有用,能讲窗口调整到最佳大小 边界布局(BorderLayout)是Frame,Dialog,ScrollPane的缺省布局。区域布局将容器分为东西南北中五个区域,加入组件时,应通过字符串East/West /South/North/Center来标记组件的方位。 public?class?TestBorderLayout { public?static?void?main(String[]?args) { Frame?f?=?new?Frame(测试窗口); //设置Frame容器使用BorderLayout布局管理器 f.setLayout(new?BorderLayout(30,?5)); f.add(new?Button(南)?,?BorderLayout.SOUTH); f.add(new?Button(北)?,?BorderLayout.NORTH); //默认添加到中间 f.add(new?Button(中))

文档评论(0)

yyanrlund + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档