网站大量收购闲置独家精品文档,联系QQ:2885784924

第六讲GUI编程.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 GUI编程 现在,实际编程中使用awt很少了,现大多用swing。 Awt分层概念:顶层容器-〉子容器,实现跨平台。 awt与swing的差别: 最根本的差别: awt Swing 依赖的环境 OS 调用OS实现界面 JVM 调用JVM 优点 运行速度快,Windows窗口4个角的角度不同。 良好的跨平台; 因为JVM向上共同, 向下与平台相关。 调用的底层层度不一样 Awt到OS Swing到JVM,跨平台速度较慢。 抽象窗口的工具包 GUI外观漂亮、易学、易操作。Java与人交互是事件的响应,教材分为2章讲。 类体系结构 图形界面程序中,可使用各种各样的图形界面元素,如:文本框,按钮,列表框、对话框等,我们将这些图形界面元素称为GUI组件。 Awt为各种GUI组件提供了对应的Java组件类,这些组件类都是ponent的直接或间接子类。 Java awt的基础是基本组件和容器—— container类非常重要。 组件(又称为构件):不能容纳其他的组件,必须放置于容器中。 容器:也是一种比较特殊的组件,它可以容纳其他组件。如:窗口、对话框等。所有的容器类都是java.awt.Container的直接或间接子类。 Container类时Componet类的一个子类,由此可见容器本身也具有组件的功能和特点。 日常生活中,盆中放锅,锅里放碗,碗里放勺。 容器分为: 顶级容器:window、frame和dialog 中间级容器:panel、applet 常用容器: ①Panel:Applet布局管理器默认的是flowLayout。 ②Frame:Dialog布局管理器默认的是BorderLayout。独立显示的顶级窗口。 ③Canvas:画布 组件: TextField:单行多列 TextArea多行多列 Container是组件,也是容器。 组件通常是GUI的可视部分,例如:按钮、标签。可通过将组件“添加”到容器中,来将组件置入显示界面。 通常,一个容器可包含一个或多个组件,并还可包含其他容器。 组件在容器中的位置由布局管理器确定。容器保存对特定LayoutManager实例的引用。容器调用LayoutManager来设置组件位置。确定组件尺寸的操作同样由LayoutManger代理实现。 由于LayoutManager通常负责组件在容器中的定位和尺寸,因此你自己不需要设置组件的位置和尺寸。如果你试图进行设置,如:使用setLayout(),setSize()或setBound()中的任何方法,LayoutManager将覆盖你的设置。 如果必须用非标准的布局管理器的方法来控制组件的位置和尺寸,可有下列方法在容器中禁用LayoutManager: setLayout(null); 执行这一步后,必须使用组件的setLayout(),setSize()或setBound()方法在容器中进行定位。 由于不用窗口系统和字体尺寸的差别,这种解决方法可能是布局依赖于平台。最好的方法是创建一个新的LayoutManager类。 容器-框架 Frame类是Window类的子类,是一个包含标题和改变窗口大小顶角的特殊window类。 Frame:2个构造函数。 Frame(String)以String指定的标题创建一个新的、不可见的Frame对象。 setSize():改变框架的大小(为顶级窗口设置大小),该方法是从Componet类继承的。 若要使Frame可见,必须调用setVisible()和setSize()方法。 show():功能 == setVisible(),为顶级窗口设置可见度。 若不设定大小,就只显示窗体上title部分,其余部分不显示。 例1:通过下面示例来感受一下Java的图形界面编程。 import java.awt.*; public class TestFrame { public static void main(String agrs[]) { Frame fr; fr=new Frame(Hello Out There!); fr.add(new Button(ok)); fr.setSize(300,300); fr.setVisible(true); } } 注意: 在运行上面写的那段程序时,主调用类的main()执行fr.setVisible(true);语句后就退出了,程序的main线程也随之结束了。但程序并没有结束,窗口不仅正常显示在桌面上,而且我们还可对这些窗口进行一些常规操作,比如:拖动窗口、改变窗口等。 对于Java程序来说,只要还有一个前台线程在运行,整个进程就不会结束。这说明程序还有其他线程在运行。 那么其他线程是谁创建的?有时在什么时候创建的?

文档评论(0)

133****0075 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档