课堂练习八-十三

更新时间:2023-10-09 06:17:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

课堂练习八(2014-04-21)

1. 如果要给frame容器设置FlowLayout布局管理器,可以使用如下语句: this.set__Layout (new FlowLayout());

2. 用_Boxlayout__类可以创建一个布局对象,称为盒式布局。 3. WindowAdapter类实现了Window_Listener_接口。 4. java.awt包中的_Canvas_类负责创建画布对象。 5. ___GridLayout__是使用较多的布局,其基本布局策略是把容器划分成若干行乘若干列的网格区域,组件就位于这些划分出来的小格中。

6. 设frame是JFrame类型的对象,如果设置其为可见,可以用如下语句: frame.set _Visible__(true);

7. Component_是所有AWT组件的抽象父类。 8. _Container_类是所有容器组件的根类。

9. _java.awt___包是Java语言用来构建GUI的基础类库,包括了很多AWT界面组件和资源。 10. 设frame是JFrame类型的对象,如果设置其大小不可调整,可以用如下语句: frame.set__________(false);

1. BorderLayout是面板的缺省布局管理器。Y 2. 一个容器中可以混合使用多种布局策略。N

3. 在使用BorderLayout时,最多可以使用五个构件。Y 4. 静态方法只能直接访问其他静态方法或静态成员变量。当对象已存在时,调用静态方法时的前缀既可以是类名,也可以是对象名 Y

5. Java中char类型采用Unicode编码,每个字符占2个字节. Y

6. 监听器类负责处理特定事件,它是一个实现了相应监听器接口的类 Y 7. Applet与Application程序的编译方法和运行方式都不同 N 8. 一个事件源可以注册多个监听器类 Y

9. Java 1.1中的事件处理模型要求事件监听器要在事件源中注册,并且要实现相应的事件监听器接口 Y

10. 与未加访问控制符的缺省情况相比,public和protected修饰符扩大了类及其属性和方法的被访问范围,private修饰符则缩小了这种范围。 Y

11. 所有的鼠标事件都由MouseListener监听接口的监听者来处理。Y

12. 容器是用来组织其他界面成分和元素的单元,它不能嵌套其他容器。N 13. 要对键盘按键响应,需要对KeyEvent事件监听。KeyEvent事件监听器是实现KeyListener接口的类对象。Y

14. 如果要在程序中对图形界面的组件进行事件处理,一般要在程序开头加上如下语句: import java.awt._event_.*;

class FrameInOut extends Frame implements_ActionListener { ......... }

二、编程实现

1、写出程序要求显示一个窗体,在窗体中包含一个标有“Submit“的按钮,当用户点击这个按钮时在控命令行输出字符串”数据提交成功”。

课堂练习九(2014-11)

一、判断题

1. 要响应关闭窗口操作,需要对WindowEvent事件监听.WindowEvent事件监听器是实现WindowListener接口的类对象。Y

2. 在actionPerformed()方法中,通过getSource()方法判断引起ActionEvent事件的事件源。Y

3. 使用GridLayout布局策略的容器中,所有的组件都有相同的大小。Y 4. 一个复选按钮实现的是“二选一”的结构,一个单选按钮组实现的是“多选一”的结构。Y

5. 一个面板不能被加入到另一个面板中。N 6. 所有的抛出的异常都必须捕获 N 7. 对话框分为模式和非模式 Y 8. 覆盖只能在不同的类中完成 Y

9. 在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员 Y

10. Java对事件的处理是采用委托方式进行的,即将需要进行事件处理的组件委托给指定的事件处理器进行处理。Y

11. Java中类和方法都不允许嵌套定义 N 12. 语句“import java.awt.*;”不仅会加载java.awt包中的所有类,而且还会加载java.awt包的子包中含有的类 N

13. Java中同一个类的多个对象将独立拥有该类定义的静态成员变量的一个拷贝 Y 14. 一个类只能有一个父类,但一个接口可以有一个以上的父接口。Y 15. 一个程序里有且只能有一个公共类,它就是主类。Y 16. 抽象类没有具体对象,所以抽象类没有构造函数。N 17. 抽象类中的抽象方法必须在该类的子类中具体实现。N 二、认真阅读以下代码写出输出结果并对给出相关分析。 class Student {

public String toString() {

System.out.println(“welcome to java world!”);

return “执行!”; } }

public class Client {

public static void main(String[] arg) {

System.out.println(“程序开始”+new Student()); } }

三、编程题

实现一个Java Application图形界面程序,能够实现两数相减、相除的功能,具体要求:

(1) 在两个文本框里分别输入两个数字,单击“求差”、“求商”按钮,则在第三个文本框里显示运算结果;

(2) 当输入的不是数字或者除数为0时,要求用消息对话框向用户报错; (3) 单击窗口右上角的“X”按钮,即关闭窗口退出

课堂练习十(2014-11)——I/O

一、判断题

1. 多个事件源可以注册同一个监听器,一个事件源也可能注册多个监听器。 2. System.out是系统的标准输出流。Y 3. System.in是系统的标准输入流。Y

4. Reader和Writer分别是字节输入输出流的基类。N

5. InputStream和OutputStream分别是字节输入输出流的基类。Y 6. Java中所有的I/O都是通过流来实现的。Y 7. Java中I/O流是由java.io包来实现的。Y

8. java.io包中定义了许多与磁盘文件或文件夹操作有关的类。Y

9. java.awt包是Java语言用来构建图形用户界面(GUI)的类库,它包括了许多界面元素和资源,主要在低级绘图操作、图形界面组件和布局管理、以及界面用户交互控制和事件响应三个方面支持界面设计。Y

10. Java中允许一个类可以直接继承若干个超类中的成员变量和方法 N 11. 创建包将在当前文件夹下创建一个与包名相同的子文件夹,以存放该包中包含的所有类的.class文件 Y

12. public修饰符不会造成安全性和数据封装性的下降,所以可以不限制public数据成员变量的使用 N

13. java.lang包是由系统自动加载完成的,而不需要在程序中用语句import java.lang.*; 进行显式地加载 Y

14. 程序运行中可以改变数组的大小 N 15. 包结构和目录结构是相同的。Y

16. java.lang包是Java的核心类库,它包含了运行Java程序必不可少的系统类 Y 17. Java中用于文件和目录管理的类是___File_ 类 二、改错题讲解

import java.awt.*; // 缺;

import java.awt.event.*; // 增加此行 import javax.swing.*;

public class err033right extends Frame implements ActionListener //修改文件名 1分 //implement 1分 { Label prompt; //修改拼写Label TextField input,output; public err033right( ) // void init改为构造方法 { prompt=new Label(\请输入你的专业:\修改拼写Label input=new TextField(8); output=new TextField(16); //input

}

setLayout(new FlowLayout());//增加此句 2分 add(prompt); add(input); add(output);

input.addActionListener(this); //增加this setSize(500,400); //size 1分 //; setVisible(true); //增加此句 2分

public void actionPerformed(ActionEvent e) //去掉static 1分 // ; 1分 {

JOptionPane.showMessageDialog(null,\你喜欢吗?\友情提醒\分 output.setText(\好好学\ }

public static void main(String args[]) //String 大写s {

new err033right(); // 修改文件名 } }

一、URL程序示例——获取URL指定的资源 import java.io.*; import java.net.URL;

import java.net.URLConnection; public class TestURL {

public static void main(String[] args) throws IOException { test3(); test2(); test(); } /** /**

* 获取URL指定的资源 *

* @throws IOException */

public static void test3() throws IOException {

URL url = new URL(\ //返回一个 URLConnection 对象,它表示到 URL 所引用的远程对象的连接。

URLConnection uc = url.openConnection(); //打开的连接读取的输入流。

InputStream in = uc.getInputStream();

int c;

while ((c = in.read()) != -1) System.out.print(c); in.close(); } /**

* 读取URL指定的网页内容 *

* @throws IOException */

public static void test2() throws IOException {

URL url = new URL(\ //打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。 Reader reader = new InputStreamReader(new BufferedInputStream(url.openStream())); int c;

while ((c = reader.read()) != -1) { System.out.print((char) c); }

reader.close(); } /**

* 获取URL的输入流,并输出 *

* @throws IOException */

public static void test() throws IOException {

URL url = new URL(\

//打开到此 URL 的连接并返回一个用于从该连接读入的 InputStream。 InputStream in = url.openStream(); int c;

while ((c = in.read()) != -1) System.out.print(c); in.close(); } }

二、Java网络编程示例——基于TCP import java.net.*; import java.io.*;

public class Lesson10 extends Thread {

private Socket s;

public static void main(String[] args)

2、设有程序如下,请填写完整. import java.sql.*; public class UseJDBC4 {

public static void main(String args[]) throws SQLException,ClassNotFoundException {

Class.forName(\

Connection conn=DriverManager.getConnection(\ Statement stmt=conn.createStatement();

stmt.___ executeUpdate__(\名称='rose' \ stmt.close(); conn.close(); } }

一、加载图像和显示图像的方法

1.使用Toolkit.getDefaultToolkit().getImage()方法 import javax.swing.JFrame; import java.awt.*;

import java.awt.event.*; public class TestLoadImage{

public static void main(String[] args){ JFrame f=new JFrame();

MyCanvas mc=new MyCanvas();

Image image=Toolkit.getDefaultToolkit().getImage(\ mc.setImage(image); f.add(mc);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setSize(400,550); f.setVisible(true); } }

class MyCanvas extends Canvas { private Image in;

private int image_width; private int image_height;

public void setImage(Image in){ this.in=in; }

public void paint(Graphics g){

g.drawImage(in,0,0,this.getWidth(),this.getHeight(),this); } }

2.使用BufferedImage类加载,BufferedImage类基础了Image类 // Graphics类的drawImage()方法介绍

import java.awt.*;

import java.awt.image.*; import javax.swing.JFrame; import java.io.*;

import javax.imageio.*;

public class TestBufferedImage extends Canvas{ public static void main(String[] args){ JFrame f=new JFrame();

MyCanvas mc=new MyCanvas(); f.add(mc); try{

File file=new File(\

BufferedImage bi=ImageIO.read(file); mc.setImage(bi); }catch(Exception e){ e.printStackTrace(); }

mc.repaint(); f.setSize(400,550);

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); } }

class MyCanvas extends Canvas{ private BufferedImage bi; private Image im;

private int image_width; private int image_height;

public void setImage(BufferedImage bi){ this.bi=bi; this.zoom(); }

public void paint(Graphics g){

g.drawImage(im,0,0,this.getWidth(),this.getHeight(),this); }

public void zoom(){

image_width=bi.getWidth(); image_height=bi.getHeight();

im=bi.getScaledInstance(image_width,image_height,Image.SCALE_SMOOTH); } }

3.在Applet中,通过getImage()方法来实现对图像的载入 public Image getImage(URL url);

public Image getImage(URL url, String name);

Applet类中提供的getCodeBase()方法返回一个URL对象 package firstapplet; import java.awt.*; import java.applet.*;

public class Picture extends Applet { Image flowermycar; //Construct the applet public Picture(){ }

//Initialize the applet public void init() {

setBackground(Color.red );

flowermycar =getImage(getCodeBase(),\}

//draw the image

public void paint(Graphics screen){

screen.drawImage(flowermycar,10,10,this); } }

二、利用Applet的play()方法和AudioClip.play()方法播放声音; Java提供两种在Applet中播放声音的机制:Applet类的play方法和AudioClip接口的play方法。

public void play(URL url);

public void play(URL url, String name);

调用Applet类的getAudioClip()方法得到AudioClip对象 public AudioClip getAudioClip(URL url);

public AudioClip getAudioClip(URL url, String name); play、loop、stop

将声音作为背景音乐播放。

// AUSound

package firstapplet; import java.awt.*; import java.applet.*;

public class AUSound extends Applet { AudioClip audioClip; //Construct the applet public AUSound() { }

//Initialize the applet public void init() {

audioClip=getAudioClip(getCodeBase(),\//只播放一遍 //audioClip.play();

//循环播放

audioClip.loop() ; }

//Stop

public void stop(){ audioClip.stop(); }

//paint

public void paint(Graphics screen){ screen.setColor(Color.green ); screen.fillRect(0,0,200,100); screen.setColor(Color.red );

screen.drawString(\} }

小结:Applet中通过getImage()方法来实现对图像的载入,而要显示图像则可调用Graphics类的drawImage()方法。播放声音可以使用两种方法:Applet类的play方法和AudioClip接口的play方法。Applet类的play方法可以装入声音文件并将其播放一次,当播放完毕后,它被标记为垃圾而被回收。AudioClip类接口可以循环播放某声音作为背景音乐,调用Applet类的getAudioClip()方法得到AudioClip对象,play方法播放声音,loop方法用来重复播放,stop方法则停止播放。

三、利用JMF播放音频和视频文件

JMF,全名为Java Media Framework,它可以在java applet和application中使用音频,视频或者其他基于时间的多媒体。JMF所支持的多媒体格式如下:AIFF(.aiff),AVI(.avi),GSM(.gsm),HotMedia(.mvr),MID(.mid),MPEG-1(.mpg)(即常见的VCD文件),MPEG-2(.mp2)(即常见的DVD文件),QuickTime(.mov),Sun Audio(.au),Wave(.wav)等。

JMF下载地址:java.sun.com/products/java-media/jmf/2.1.1/download.html 直接执行该文件,即进入JMF安装向导,安装时应注意选择路径为jdk安装路径(C:\\jdk1.6\\),因为JMF要有JDK的支持。

我下载的是JMF2.1,从SUN下载JMF2.1以后,得到的是一个安装文件(windows系统下),运行jmf-2_1_1b-windows-i586.exe。该程序会将JMF2.1安装到我的一个指定的目录下。

当安装成功后,你需要确认一下安装程序正确设定了CLASSPATH和PATH环境变量。在CLASSPATH中需要包含jmf.jar和sound.jar;在PATH中需要包含JMF动态库的路径。 建立一个视频播放器主要步骤: 第1步 创建一个播放器

Player player = Manager.createPlayer(url); 第2步 向播放器注册控制监视器 player.addControllerListener(this); 第3步 让播放器对媒体进行预提取 player.prefetch(); 第4步 启动播放器 player.start();

第5步 停止播放器 player.stop();

import java.awt.BorderLayout; import java.awt.Component; import java.awt.Dimension; import java.awt.Frame; import java.awt.Panel;

import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.IOException;

import java.net.MalformedURLException; import java.net.URL;

import javax.media.ControllerEvent; import javax.media.ControllerListener; import javax.media.EndOfMediaEvent; import javax.media.Manager;

import javax.media.MediaLocator;

import javax.media.NoPlayerException; import javax.media.Player;

import javax.media.PrefetchCompleteEvent; import javax.media.RealizeCompleteEvent; import javax.media.Time;

public class JMFSample implements ControllerListener { public static void main(String[] args) { JMFSample sp = new JMFSample(); sp.play(); }

private Frame f;

private Player player; private Panel panel;

private Component visual;

private Component control = null;

public void play(){

f = new Frame(\

f.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent we) { if(player != null) { player.close(); }

System.exit(0); } });

本文来源:https://www.bwwdw.com/article/eucf.html

Top