Chapter14(My--Java教案)word资料11页

合集下载

Chapter11(My--Java教案)9页word

Chapter11(My--Java教案)9页word

第十一章建立GUIs本模块讲述图形用户界面的建立及布局。

它介绍了抽象视窗工具包,一种建立GUIs(图形用户界面)的类包。

第一节 AWTAWT提供用于所有Java applets及应用程序中的基本GUI组件,还为应用程序提供与机器的界面。

这将保证一台计算机上出现的东西与另一台上的相一致。

在学AWT之前,简单回顾一下对象层次。

记住,超类是可以扩展的,它们的属性是可继承的。

而且,类可以被抽象化,这就是说,它们是可被分成子类的模板,子类用于类的具体实现。

显示在屏幕上的每个GUI组件都是抽象类组件的子类。

也就是说,每个从组件类扩展来的图形对象都与允许它们运行的大量方法和实例变量共享。

Container是Component的一个抽象子类,它允许其它的组件被嵌套在里面。

这些组件也可以是允许其它组件被嵌套在里面的容器,于是就创建了一个完整的层次结构。

在屏幕上布置GUI组件,容器是很有用的。

Panel是Container的最简单的类。

Container的另一个子类是Window。

Java.awt包Java.awt包包含生成WIDGETS和GUI组件的类。

该包的基本情况如下图所示。

黑体字的类表明该模块的要点。

第二节建立图形用户界面1、ContainerContainer有两个主要类型:Window和PanelWindow是Java.awt.Window.的对象。

Window是显示屏上独立的本机窗口,它独立于其它容器。

Window有两种形式:Frame(框架)和Dialog(对话框)。

Frame和Dialog是Window 的子类。

Frame是一个带有标题和缩放角的窗口。

对话没有菜单条。

尽管它能移动,但它不能缩放。

Panel是Java.awt.Panel的对象。

Panel包含在另一个容器中,或是在Web浏览器的窗口中。

Panel确定一个四边形,其它组件可以放入其中。

Panel必须放在Window滚动块也是Window的一个子类。

Java语言程序设计第14章习题参考答案.docx

Java语言程序设计第14章习题参考答案.docx

习题十四参考答案1.什么是Web,其工作原理如何?答:Web是一种浏览器/服务器技术。

Web服务器分布在世界各地,存储着各种各样的信息。

Web的浏览器用来请求任何服务器上的信息,并负责显示这些信息。

Web工作原理:(1)用户在浏览器中输入要访问网页的URL地址(如:),向服务器发送浏览请求。

(2)Web服务器接收到请求后,把响应结果返回到浏览器,浏览器解析HTML,把内内容呈现给用户。

(3)通信完成,关闭连接。

2.JSP的工作原理是什么?答:JSP的工作过程如下:(1)当一个JSP页面第一次被请求或在上次调用后被修改过,服务器首先会把JSP页面转换成Servleto(2)在转换的过程中,若JSP页面存在语法错误,转换会被终止,并向服务器和客户端输出错误信息。

如果转换成功,转换后的Servlet会被编译成相应的类文件。

服务器加载该类文件并允许其实例完成需要的工作,把响应返回客户端浏览器。

(3)如果被请求的JSP文件在上次调用后没有被修改过,服务器直接调用已经转换编译过的类文件实例完成工作,把响应返回客户端浏览器。

(4)Sen-let被处理完毕以后,其生命周期结束,被Java虚拟机的垃圾回收器回收。

3.JSP的构成元素有哪些?答:一个JSP页面由模板元素和JSP元素构成。

模板元素指的是JSP引擎不处理的部分, 比如HTML. JavaScript和CSS等。

JSP元素指的是由JSP引擎直接处理的部分,这一部分必须符合JSP 语法,否则会导致编译错误。

JSP元素包括注释、指令元素、脚本元素和动作元素。

4.什么是内置对象? JSP的内置对象有哪些,各有何功能?答:所谓JSP内置对象就是町以不加声明就在JSP页面脚本中使用的成员变量。

卜面介绍常见的内置对象。

常用的内置对象有:(I)request对象。

该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。

Java第十四章全解

Java第十四章全解

Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved. 0132130807
2
学习目标

区分Swing和AWT的不同(第12.2节)。 描述Java GUI API的层次体系结构(第12.3节)。
辅助类都不是Component的子类。 它们用来描述GUI组件的属性,例 如:图形的内容、颜色、字体以及 大小尺寸等。
JComponent
JPanel
在 javax.swing 包中的 Swing 组件
轻量级
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved. 0132130807
JLayeredPane JPopupMenu
JMenuBar JTable
JTableHeader
JInternalFrame
JProgressBar
JSpinner
Liang, Introduction to Java Programming, Eighth Edition, (c) 2011 Pearson Education, Inc. All rights reserved. 0132130807
GUI类的层次结构(Swing)
Dimension Font FontMetrics Object Color Graphics Component
* LayoutManager 1 在包 java.awt 中的类 重量级

JAVA_14

JAVA_14

Ver. 1.0
第 14 章
幻灯片1。共26张
Java 编程语言
I/O 基本原理
流可以看作是从源开始或到目的地的一个数据流。 源流启动数据流,因此,也称为输入流。 目的流中止了数据流,因此也称为输出流。 源和目的都是两个节点流。 节点流的类型是文件、内存和线程或进程之间的管道。
Ver. 1.0
第 14 章
第 14 章
幻灯片22。共26张
Java 编程语言
示范
让我们来看一下如何创建基于 TCP 的 Java 客户端,并使用用 户提供的系统属性来驱动 Java 程序。
Ver. 1.0
第 14 章
幻灯片23。共26张
Java 编程语言
小结
在本节课中,您学习了:
流是从源开始或到目的地的数据流。 源流也称为输入流。 目的地流终止了数据流,也称为输出流。 InputStream、OutputStream、Reader和 Writer 是基础 流类。 InputStream 类的三个基本读方法是:
Ver. 1.0
第 14 章
幻灯片5。共26张
Java 编程语言
OutputStream 方法
三个基本的写方法是: void write(int c) void write(byte[] buffer) void write(byte[] buffer, int offset, int length) 其他方法包括: void close() void flush()
建立连接:
建立网络连接类似于打电话。 一端必须拨号另一端,而另一端必须正在侦听。
Ver. 1.0
第 14 章
幻灯片17。共26张
Java 编程语言

java课程总结第14章 ppt课件

java课程总结第14章 ppt课件

try{
while (true){
System.out.print(s);
sleep(m);
count++;
2020/12/2
14
Java实例——(续)
if (count >= 20) break; } System.out.println(s+"finished !"); } catch(InterruptedException e) {return;} } public static void main(String args[]) { Thread1 threadA = new Thread1("A ", 50); Thread1 threadB = new Thread1("B ", 100); threadA.start(); threadB.start(); } }
System.out.print(s);
Thread.sleep(m);
if (++count >= 20) break;
2020/1}2/2
18
Java实例——(续)
System.out.println(s+"has finished !"); } catch (InterruptedException e) {return;} } public static void main(String args[]) { Thread2 threadA = new Thread2("A ", 50); Thread2 threadB = new Thread2("B ", 100); Thread threadC=new Thread(threadA); Thread threadD=new Thread(threadB); threadC.start(); threadD.start(); } }

JAVA第14章

JAVA第14章

第14章二简答题1.第一题/*** 学生类* @author fty.ps-itsup**/publicclass Students {int height;}/*** 身高类* @author fty.ps-itsup**/publicclass Height {Students[] students = new Students[10];//获得学生身高数组publicvoid getheight(Students student) {for (int i = 0; i <students.length; i++) { if (students[i] == null) {students[i] = student;break;}}}//获得最高的学生身高数组的下标publicint getmax(Students[] ss){Students aa = new Students();aa.height =ss[0].height;int maxnum = 0;for (int i = 0; i <ss.length; i++) {if(ss[i] != null){if(ss[i].height>aa.height){aa.height = ss[i].height;maxnum = i;}else{continue;}}}return maxnum;}//显示学生身高数组publicvoid show(){for (int i = 0; i <students.length; i++) { if (students[i] != null) {System.out.println(students[i].height);}}}}import java.util.Scanner;publicclass Test {/*** 测试学生类及学生身高操作类* @param args*/publicstaticvoid main(String[] args) { Scanner input = new Scanner(System.in);Height height = new Height();//循环输入学生身高for (int i = 0; i < 10; i++) {System.out.print("请输入第" + (i+1) + "个学生的身高:");int hei = input.nextInt();Students mystu = new Students();mystu.height = hei;height.getheight(mystu);}System.out.print("第"+(height.getmax(height.students)+1)+"位同学是最高分:"+height.students[height.getmax(height.students)]. height);}}2.第二题/*** 数字类* @author fty.ps-itsup**/publicclass Numbers {int num;} publicclass TestNum {/*** 执行测试数字类** @param args*/publicstaticvoid main(String[] args) { Numbers numbers = new Numbers();new RunNumbers();get.getnumbers(); // 获得数组get.show(get.numbers); // 显示数组System.out.println("最大值是:" + get.getmaxnum(get.numbers));System.out.println("最小值是:" + get.getminnum(get.numbers));}}publicclass TestNum {/*** 执行测试数字类** @param args*/publicstaticvoid main(String[] args) { Numbers numbers = new Numbers();new RunNumbers();get.getnumbers(); // 获得数组get.show(get.numbers); // 显示数组System.out.println("最大值是:" +get.getmaxnum(get.numbers));System.out.println("最小值是:" + get.getminnum(get.numbers));}}3.第三题package com.triplea.IT.joey;/*** 学生类* @author fty.ps-itsup**/publicclass Students {String name;}/*** 执行学生类的姓名*/package com.triplea.IT.joey;publicclass RunStudents {Students[] students = new Students[5];//获得学生姓名数组publicvoid getname(String name){Students student = new Students();for(int i =0; i <students.length; i++){if(students[i] == null){ = name;students[i] = student;break;}}}//显示学生姓名列表publicvoid show(){for(int i =0; i <students.length; i++){if(students[i].name != null){System.out.print(students[i].name +" ");}}}//查找学生姓名publicboolean search(Students[] names, String name){boolean find = false;for(int i =0; i <students.length; i++){if(students[i].name.equals(name)){System.out.println("找到了!");find = true;break;}elseif(i == students.length-1){System.out.println("没找到!");}}return find;}}package com.triplea.IT.joey;import java.util.Scanner;publicclass TestStudents {/*** 测试学生姓名类* @param args*/publicstaticvoid main(String[] args) {// TODO Auto-generated method stubStudents student = new Students();new RunStudents();Scanner input = new Scanner(System.in);System.out.println("请依次录入5个学生的姓名:");for(int i =0; i < 5; i++){String name = input.next();run.getname(name);}System.out.println("姓名列表:");run.show();System.out.print("请输入你要查找的姓名:");String searchname = input.next();run.search(run.students, searchname);}}4.第四题package com.triplea.IT.joey; publicclass Numbers {int Numbers;/*** 数字类*///判断是否为素数publicboolean shusu(int number) {boolean isshusu = false;for (int i = 2; i < number; i++) {if (number % i == 0) {break;}elseif( i == number-1){isshusu = true;}}return isshusu;}}package com.triplea.IT.joey;import java.util.Scanner;publicclass TestNumber {/*** 测试数字是否为素数* @param args*/publicstaticvoid main(String[] args) { Numbers shusu = new Numbers();Scanner input = new Scanner(System.in);System.out.print("请输入一个任意整数:");int number = input.nextInt();if (shusu.shusu(number)) {System.out.println("这是一个素数。

chapter2(My--Java教案)21页word

第二章Java基本语法前言第一步:安装JDK第二步:用EditPlus建立一个Java源文件第三步:在EditPlus里编写一个Java源文件 HelloWorld.java第斯步:保存HelloWorld.java第五步:编译HelloWorld.java、运行HelloWorld.class2.1 注释注释:是程序和代码的说明文字,本身并不运行。

Java有3种注释:➢单行注释://➢多行注释:/* …. */➢文档注释:/** …. */2.1.1 单行注释1、System.out.println( “HelloWorld!”) // This is output astring2、// System.out.println( “HelloWorld!” )2.1.2多行注释以/*开始,以*/结束,他们之间的所有行都被注释掉了。

int j = 9;j = j + 1;System.out.print( j );2.1.3文档注释以/**开始,以*/结束,他们之间的所有行都被注释掉了,而且被看作是文档注释,通过特殊软件可以将程序中的文档注释提取出来形成文档。

举例:public class Demopublic static void main(String[] args)int x;x = 1;x = x + 1;System.out.println("x=" + x );运行结果:public class Demopublic static void main(String[] args)int x;x = 1;//x = x + 1;System.out.println("x=" + x );运行结果:x=1//x = x + 1; 等价于 /* x = x + 1;public class Demopublic static void main(String[] args)int x , y;x = 1;y = 2;//x = x + 1;//y = y + 1;System.out.println("x=" + x +", y=" + y );//x = x + 1;//y = y + 1;等价于x = x + 1;y = y + 1;2.2标识符1、标识符:是程序中那些中间不带空格的单词,并以字母、下划线_或美元符号$开头,且不能以数字字符开头。

精品文档-面向对象程序设计—Java(第三版)(张白一)-第14章

下面我们将针对这四个类及其派生子类做进一步的介绍。
第14章 输入与输出
14.1.1 InputStream类 InputStream类是用于读取字节型数据的输入流类,该类
的继承及派生结构如下: ng.Object java.io.InputStream java.io.FileInputStream java.io.PipedInputStream java.io.ObjectInputStream java.io.SequenceInputStream java.io.ByteArrayInputStream java.io.StringBufferInputStream
第14章 输入与输出
1.OutputStream类的成员方法 OutputStream类是一个抽象类,它的成员方法列于表 14.3中。 2.DataOutputStream类的成员方法 由于OutputStream是抽象类,因此程序中创建的输出流 对象隶属于OutputStream类的某个子类。表14.4列出了 OutputStream的子类DataOutputStream类的成员方法。
在一个已经存在的输入流基础上构造一个过滤流 DataInputStream
第14章 输入与输出
【示例程序C14_1.java】 键盘输入数据的读取。 import java.io.BufferedInputStream; import java.io.DataInputStream; import java.io.IOException; public class C14_1 { public static void main(String args[ ]) { int count; byte b[ ] = new byte[256]; String str; BufferedInputStream bis=new

Java面向对象程序设计第14章 保留部分

第14章 保留部分
主讲人: 程裕强
主要内容



了解Applet概念 了解图形界面编程基本概念 了解网络编程基本概念



随着软件技术的发展,Java语言早期的一些 技术逐渐被淘汰,比如Applet、AWT、 Swing以及网络编程等。 为了课程的完整性,本章仅对这些过时的部分 简单介绍一下。 有兴趣的同学可以参考其他教材资料或者网络 资源。
现在开发C/S结构的图形界面系统已经很少了,大家只 需了解Java的图形界面编程即可。 下面通过2个简单示例来说明Java的图形界面编程。 例2:第一个窗口程序。 import javax.swing.*; import java.awt.*; public class FrameTest1{ public static void main(String[] agrs){ JFrame frame=new JFrame("HelloWorld"); frame.setVisible(true);//设置窗体可见 } }

import java.applet.Applet; import java.awt.Graphics; public class MyApplet extends Applet{ public void paint(Graphics g){ g.drawString("Hello,World!",10,20); } }
14.1 Applet



Java有两类程序:一是Java Application,即是Java 应用程序;二是Java Applet,即是Java小程序。 在Java语言刚刚诞生时,Java语言主要运行在 HotJava浏览器上,这些程序就是Applet,Java小程 序。随机JavaScript等脚本语言和Flash技术的发展, 现在主流的浏览器上已经很难看到Applet了。但是作 为Java语言的开端,大家应该了解一下。 Java小程序都是Applet类的子类,因此用户编写 Java小程序时需要继承Applet类,也就是说 “extends Applet”是Java小程序的标准。Applet 需要嵌入HTML页面代码中,由浏览器执行。 例1:下面通过一个简单示例来说明Applet运行过程。

java语言程序设计-基础篇--第八版--英文课件(第14章)


5
object cannot be created from abstract class
6
An abstract class cannot be instantiated using the new operator, but you can still define its constructors, which are invoked in the constructors of its subclasses. For instance, the constructors of GeometricObject are invoked in the Circle class and the Rectangle class.
TestGometricObject
Run
abstract method in abstract class
An abstract method cannot be contained in a nonabstract class. If a subclass of an abstract superclass does not implement all the abstract methods, the subclass must be defined abstract. In other words, in a nonabstract subclass extended from an abstract class, all the abstract methods must be implemented, even if they are not used in the subclass.
8
concrete method overridden to be abstract A subclass can override a method from its superclass to define it abstract. This is rare, but useful when the implementation of the method in the superclass becomes invalid in the subclass. In this case, the subclass must be defined abstract.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一节介绍Java基础类是关于GUI组件和服务的完整集合,它大大简化了健壮Java应用程序的开发和实现。

JFC主要包含5个API:AWT,Java2D,Accessibility,Drag & Drop,Swing。

它提供了帮助开发人员设计复杂应用程序的一整套应用程序开发包。

A、Java2D是一图形API,它为Java应用程序提供了一套高级的有关二维(2D)图形图像处理的类。

Java2D API扩展了java.awt和java.awt.image类,并提供了丰富的绘图风格,定义复杂图形的机制和精心调节绘制过程的方法和类。

B、Accessibility API提供了一套高级工具,用以辅助开发使用非传统输入和输出的应用程序。

它提供了一个辅助的技术接口,如:屏幕阅读器,屏幕放大器,听觉文本阅读器(语音处理)等等。

C、Drag & Drop技术提供了Java和本地应用程序之间的互操作性,用来在Java应用程序和不支持Java技术的应用程序之间交换数据。

D、JFC模块的重点在Swing。

Swing用来进行基于窗口的应用程序开发,它提供了一套丰富的组件和工作框架,以指定GUI如何独立于平台地展现其视觉效果。

Swing介绍Swing提供了一整套GUI组件,为了保证可移植性,它是完全用Java 语言编写的。

1)可插的外观和感觉可插的外观和感觉使得开发人员可以构建这样的应用程序:它们可以在任何平台上执行,而且看上去就象是专门为那个特定的平台而开发的。

一个在Windows环境中执行的程序,似乎是专为这个环境而开发的;而同样的程序在Unix平台上执行,它的行为又似乎是专为Unix环境开发的。

开发人员可以创建自己的客户化Swing组件,带有他们想设计出的任何外观和感觉。

这增加了用于跨平台应用程序和Applet的可靠性和一致性。

一个完整应用程序的GUI可以在运行时刻从一种外观和感觉切换到另一种。

2)Swing的体系结构与AWT比较,Swing提供了更完整的组件,引入了许多新的特性和能力。

Swing API是围绕着实现AWT各个部分的API构筑的。

这保证了所有早期的AWT组件仍然可以使用。

AWT采用了与特定平台相关的实现,而绝大多数Swing组件却不是这样做的,因此Swing的外观和感觉是可客户化和可插的。

上图显示了JFC各个部分之间的相互关系。

Java2D,Accessibility,Drag & Drop,和Accessibility API是AWT和JFC的一部分,但它们不属于Swing。

这是因为,这些组件使用了一些本地代码,而Swing却不是这样的。

Swing是围绕着一个称为JComponent的新组件构建的,而JComponent则由AWT的容器类扩展而来。

3)Swing的层次结构下图说明了Swing组件的层次结构:Swing GUI使用两种类型的类,即GUI类和非GUI支持类。

GUI类是可视的,它从JComponent继承而来,因此称为“J”类。

非GUI类为GUI类提供服务,并执行关键功能;因此它们不产生任何可视的输出。

4)Swing组件Swing组件主要为文本处理、按钮、标签、列表、pane、组合框、滚动条、滚动pane、菜单、表格和树提供了组件。

其中一些组件如下所示:JApplet JButton JComboBox JOptionPaneJList JLabelJScrollPane JTableJScrollBar JSliderJTooltip JTree第二节基本的Swing应用程序HelloSwing应用程序的输出产生下图所示的窗口:每次用户点击按钮时,标签就会更新。

1、HelloSwingimport java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.accessibility.*;public class HelloSwing implements ActionListener private JFrame jFrame;private JLabel jLabel;private JPanel jPanel;private JButton jButton;private AccessibleContext accContext;private String labelPrefix = "Number of button clicks: ";private int numClicks = 0;public void go()// Here is how you can set up a particular// lookAndFeel. Not necessary for default.try {UIManager.setLookAndFeel( UIManager.getLookAndFeel() );} catch ( UnsupportedLookAndFeelException e ) {System.err.println("Couldn't use the " + "default look and feel " + e);jFrame = new JFrame("HelloSwing");jLabel = new JLabel(labelPrefix + "0");jButton = new JButton("I am a Swing button!");// Create a shortcut: make ALT-A be equivalent// to pressing mouse over button.jButton.setMnemonic('a');jButton.addActionListener(this);// Add support for accessibility.accContext = jButton.getAccessibleContext();accContext.setAccessibleDescription( "Pressing this button increments " +"the number of button clicks");// Set up pane.// Give it a border around the edges.jPanel = new JPanel();jPanel.setBorder( BorderFactory.createEmptyBorder( 30,30, 10,30) );// Put compts in pane, not in JFrame directly.jPanel.add(jButton);jPanel.add(jLabel);jFrame.setContentPane(jPanel);// Set up a WindowListener inner class to handle// window's quit button.WindowListener wl = new WindowAdapter()public void windowClosing(WindowEvent e) {System.exit(0); }jFrame.addWindowListener(wl);jFrame.pack();jFrame.setVisible(true);public void actionPerformed(ActionEvent e)numClicks++;jLabel.setText(labelPrefix + numClicks);public static void main(String[] args)HelloSwing helloSwing = new HelloSwing();helloSwing.go();注意:1)String winPlaf = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";String metalPlaf = "javax.swing.plaf.metal.MetalLookAndFeel";String motifPlaf = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";try {UIManager.setLookAndFeel( motifPlaf );} catch ( Exception e ) {System.err.println("Couldn't use the " + "default look and feel " + e);2)jButton.setToolTipText("Pressing this button increments the number ");2、导入Swing包包,它包括了标准getLookAndFeel( )方法返回在Windows环境中的外观和感觉。

在运行Solaris操作系统的机器上,这个方法则返回一个公共桌面环境(CDE)/Motif的外观和感觉。

因为都是缺省值,所以对本例来说,这些行都不是必需的。

3、建立窗口Swing程序用JFrame对象实现了它们的窗口。

JFrame类是AWT Frame 类的一个子类。

它还加入了一些Swing所独有的特性。

Hello Swing 中,处理JFrame的代码如下:public HelloSwing()JFrame jFrame;JPanel jPanel;jFrame = new JFrame("HelloSwing");jPanel = new JPanel();jFrame.setContentPane(jPanel);这段代码与使用Frame的代码十分相似。

唯一的区别在于,你不能将组件加入到JFrame中。

你可以将组件加入到JFrame的content pane 中,或者提供一个新的content pane。

一个content pane是一个包含除菜单条外所有框架的可视组件的容器。

要获得一个JFrame的content pane,可使用getContentPane( )方法。

相关文档
最新文档