Java应用程序开发 (12).pptxVIP

  • 1
  • 0
  • 约5.58千字
  • 约 58页
  • 2019-07-17 发布于辽宁
  • 举报
学习情境十二 图形用户界面 ;知识目标 理解Applet类的4个主干方法; 理解组件和容器概念; 理解各种AWT组件; 理解什么是容器的布局管理器。 能力目标 能够创建Java Applet小程序; 能够使用组件的各种属性,例如,组件的大小、颜色、字体和光标等; 能够正确使用AWT组件; 能够正确使用容器,创建GUI程序的主窗体; 能够正确使用容器的布局管理器。;情景再现与任务分析;六个任务;任务六、使用容器布局管理器 主要学习4种布局管理器。但是,卡片布局管理器比较特殊,因为学习它需要涉及到事件的处理。建议在学习了委托事件模型后,再回来学习卡片布局管理器。;任务一 编写Java Applet小程序;【例12-1】认识Java Applet小程序的四个主干方法;Java Applet小程序的主要特点总结: Java Applet小程序是嵌入在.html文件中执行的。因此它没有main()方法。 Java Applet小程序是java.applet.Applet的子类。编写Java Applet小程序的工作基本上就是重载其父类中的那4个主干方法。 Java Applet小程序是GUI程序,但是它本身不必构建图形用户界面,它利用了浏览器的图形用户界面。 Java Applet小程序中利用public void paint(Graphics g)方法在窗体上绘图。这是Applet的祖先类java.awt.Continer类中的一个方法。;任务二 组件基础;1.AWT和Swing;AWT组件的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,这被称为peers。 AWT组件是利用操作系统所提供的图形库进行绘图的。由于不同操作系统的图形库所提供的功能是不一样的,在一个平台上存在的功能在另外一个平台上则可能不存在。为了实现Java语言所宣称的“Write once, run anywhere(编写一次,到处运行)”的口号,AWT不得不通过牺牲功能来实现其平台无关性,也就是说,AWT所提供的图形功能是各种通用型操作系统所提供的图形功能的交集,因此AWT中的组件很少。 Swing是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT所能够提供的所有功能,并且用纯粹的Java代码对AWT的功能进行了大幅度的扩充。因此,Swing组件的种类比AWT组件的种类多,例如,javax.swing包中的JRadioButtonMenuItem类,这个类的对象用来创建带有单选按钮的菜单项,而java.awt包中就没有这样类似的类。;由于AWT是依靠本地方法来实现其功能的,通常把AWT组件称为重量级组件,而Swing基本上面没有使用本地方法来实现图形功能,通常把Swing组件称为轻量级组件。因此,利用AWT组件编写的程序在不同的平台上显示效果会有所不同,而用Swing组件编写的程序在不同的平台上显示效果是一样的。 可以看出java.awt是不可取代的,作者认为利用AWT进行Java的图形用户界面教学更加合适,例如,利用java.awt.Frame作为主窗体能够很好地解释窗体事件,而通过窗体事件又能够很好地理解事件适配器。因此,本教材主要讲解AWT组件,只在某些地方简要介绍Swing组件。;2.组件;图12-2是组件和容器相关的类的层次结构图。 含有J开头的组件和容器都定义在javax.swing包中。 在javax.swing包中定义了两种类型的组件:顶层容器(JFrame、JApplet、JDialog和JWindow)和轻量级组件(JComponent),Swing组件都是AWT的Container类的直接子类或间接子类。 总之,含J开头的组件或容器是不含J开头的组件或容器的升级。 例如,Button按钮中只能有标签,而JButton按钮可以中可以有图片。 又例如,以Frame类对象作为应用程序的主窗体时,它不具备直接关闭窗体(点击窗体右上角的“关闭”按钮时,不能关闭窗体。必须在应用程序中添加关闭窗体的处理代码),而以JFrame类对象作为应用程序的主窗体就具有直接关闭窗体的能力。;;3.组件的字段;组件的这些字段也有它们对应的getXxx()方法和setXxx()方法,例如,变量aButton引用某个组件(按钮),那么: aButton.setName(“closeBtn”); //设置按钮的名字 String name = aButton.getName(); //返回按钮的名字 组件的enabled、visible和valid字段是布尔型变量,对于这样的字段,一般用isXxx()方法取代getXxx()方法来获取其字段的值。例如: boolean enabledFlag = aButton.isEneabled(); //返回en

文档评论(0)

1亿VIP精品文档

相关文档