047471604Java语言程序设计(一)

来源:网络收集 时间:2025-04-26 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xuecool-com或QQ:370150219 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

}

答:红色、顺时针画圆

7.4 多媒体基础

简单应用:播放幻灯片、动画、音乐的方法

1010-7.小程序要播放音频文件,可使用类( ) A.Audio B.Jaudio C.AudioClip

D.JaudioClip

17.在Java语言中,要播放音频文件可以使用__________类。

1101-24.请写出java.applet.AudioClip控制声音播放的三个方法。 Loop();stop();play()

第八章 多线程

8.1 线程的基本概念

识记:线程与进程的区别,线程的各种状态、优先级,线程间的互斥与同步 1210-8. 阻塞状态的线程在消除引起阻塞的原因后,会转入 A. 死亡状态 B. 开始状态C. 就绪状态 D. 运行状态

18.线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用resume()方法恢复和用_________方法恢复。notify()或notifyAll()

18.当线程调用resume()方法后,就进入__________状态。

1201-18.多线程程序设计中,让执行临界段程序时等待的线程结束等待,通常使用的方法有resume()、notify()或者 notifyAll() 。

1001-18.当线程使用完临界段后,为了使等待的线程恢复工作,需要调用的方法是__________。Notify()

1110-18.在Java中,线程的调度策略采用___抢占式____,优先级高的线程比优先级低的优先执行。

8.在以下四个供选的整数中,能作为线程最高优先级的整数是 ( C ) A.0 B.1 C.10 D.11

1404-8.以下能作为表示线程优先级的数值,并且级别最低的是

A.0 B.1 C.1 5

D.1 6

1010-8.以下是关于线程的叙述,正确的是( )

A.多线程的使用可以提高设备的平行工作能力,但是使系统管理变得复杂

B.同一个进程下的线程都有自己的状态、专用数据段和独立的内存资源 C.线程是能独立运行的程序

D.进程的执行效率比线程的执行效率高

1101-8.以下关于线程互斥和同步的叙述中,正确的是( ) A.多线程互斥使用各自资源的程序段,在操作系统中称为临界段 B.临界段的作用是使某线程能够使用其它线程的资源 C.可以使用notify()方法通知等待线程结束等待 D.线程的互斥和同步可以很好地解决死锁问题

1101-18.当线程处于新建状态后,调用了start()方法,该线程就处于___就绪__状态。 1110-8.设Thread对象thd的优先级为7,thd又创建了另一个Thread对象chd,如果未对chd 的优先级进行修改,则chd的优先级为 ( ) A.1 B. 5 C.7 D. 10

8.2 Thread类和Runnable接口

综合应用:用Thread子类实现多线程,用Runnable接口实现多线程 8.用Thread子类实现多线程的步骤顺序是( )

A.声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法

B.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例 C.创建Thread子类的实例,让线程调用start()方法

D.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用start()方法

18.程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_________方法;二是建立线程实例。run()

8.用Runnable接口实现多线程的主要工作是( )

A.声明实现Runnable接口的类,在类内实现run()方法,让线程调用start()方法。 B.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在init()方法中创建新线程,启动新线程。

C.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在Init()方法或start()方法中创建新线程,在start()方法中启动新线程。

D.声明实现Runnable接口的类,在类内实现run()方法,在init()方法中创建新线程,在start()方法中启动新线程。

8.在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状态的方法是( ) A.start() B.init() C.resume() D.run() 1010-25.请写出用Runnable接口实现多线程的主要工作。 1110-25.请写出线程从阻塞状态恢复到就绪状态的三种途径。

8.3 线程互斥和同步

识记: 线程间的互斥与同步

简单应用: 线程互斥和同步的实现方法

1010-18.多线程互斥使用______的程序段,在操作系统中称为临界段。共享资源 8.用来定义临界段,能对共享对象的操作上锁的关键字是

A.static B.share C.serialize D.synchronized 1201-8.以下关于线程互斥和同步的叙述中,正确的是( ) A.临界段是线程互斥使用资源的程序段 B.临界段能使线程使用其它线程的资源 C.互斥和同步能很好地解决死锁问题 D.可用notify()方法让等待线程结束等待 1210-18. 线程之间的相互等待被称为线程的____同步______。 1404-18.当线程进入临界段后,发现需要与别的线程进行同步,则要调用的方法 是 ______。 Wait()

31.以下定义的类shareDataManager用于管理多个线程共享数据data。一些线程要减少data,另一些线程要增加data。由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。类提供一个方法modiData()供修改data的线程调用,该方法在data修改结束后,应通知其它等待进入这个方法的线程。 class ShareDataManager{ int data=0;

________void modiData(int delta){ 在Java语言中,使用关键字synchronized定义临if(delta>=0){

界段,能对共享对象的操作上锁,使得某一时刻data+=delta;

只允许一个线程使用这个共享对象。但是为了同}else {

while(data <delta){ 步,可在临界段中使用wait()、notify()和try{System.out.println("发生等待!"); notifyAll()方法。wait()让线程一直等待,notify()wait();

方法通知第一个处于等待的线程结束等待。}catch(InterruptedException e){ }

notifyAll()方法使所有处于等待的线程都结束等}

data-=delta; 待,重新竞争CPU。 }

_________; }

ShareDataManager(int ititData){data=initData;} }

36.小应用程序创建一个线程。例子使用容器类方法getGraphics()获得Graphics对象,给线程作为画笔使用。请写出该程序中这个线程的工作内容。 import java.applet.*;import java.awt.*;

public class Class1 extends java.applet.Applet implements Runnable{ Thread redBall;Graphics redPen; int rx=0,ry=0; public void init(){ setSize(250,200);

redBall =new Thread(this); redPen=getGraphics();

redPen. setColor(Color.red); setBackground(Color.gray); }

public void start(){ redBall.start(); } public void run(){ while(true){

if(Thread.currentThread()==redBall){ rx=(int)(80*Math.random()); ry=(int)(80*Math.random()); red Pen.setColor(Color.red);

red Pen.fillOval(100+rx,100+ry,10,10); try{redBall.sleep(500);}

catch(InterruptedException e){} redPen.setColor(Color.gray);

redPen.fillOval(100+rx,100+ry,10,10); } } } }

参考答案:随机位置显示一个小圆,程序采用背景色重画的办法,清除前一次显示的小圆。 本题考核知识点是图形绘制和线程31.以下定义的类ShareData用于管理多个线程共享数据val。为了保证对共享数据val修改的完整性,线程对val的操作需要互斥,类ShareData中定义的方法modiData()就是供共享val的线程修改val的方法。程序共有20个线程共享val,有些减少val,有些增加val。

public class Class1 {

public static void main(String args[]){ ShareData mrc = new ShareData(50); Thread[] aThreadArray = new Thread[20];

System.out.println(\刚开始的值是:\ System.out.println(\多个线程正在工作,请稍等!\ for(int i = 0; i < 20; i++) { int d = i % 2 == 0 ? 50 : -30;

aThreadArray[i] = new Thread(new MyMultiThreadClass(mrc, d)); aThreadArray[i].start(); }

WhileLoop ://等待所有线程结束 while(true){

for(int i = 0; i < 20; i++)

if(aThreadArray[i]. isAlive() ___)continue WhileLoop; break; }

System.out.println(\最后的结果是: \}

}

class MyMultiThreadClass implements Runnable { ShareData UseInteger; int delta;

MyMultiThreadClass(ShareData mrc, int d) { UseInteger = mrc; delta = d; }

public void run() {

for(int i = 0; i < 1000; i++) { UseInteger.modiData(delta);

try {Thread.sleep(10) ;//做一些其他的处理 }catch(InterruptedException e){ } } } }

class ShareData { int val;

ShareData(int initValue){val = initValue; } int getVal(){return val;}

private void putVal(int v){val = v;}

_________ void modiData(int d){ synchronized putVal(getVal() + d); } }

1001-31.以下定义的类ShareData用于管理多个线程共享数据data。一个线程生成data,另一个线程使用data。约定,新生成的data只有被另一个线程使用后,才能生成下一个data。反之,一个data被使用后,也不能再继续使用。所以,生成和使用data的线程之间需要互斥和同步。以下是管理上述使用方式的类,类内有要管理的共享数据,以及对共享数据的存操作putData()和取操作getData()。 class ShareData{

int data;∥共享数据

4747 Java语言程序设计(一)

第一章 Jave语言基础

1.1 Java语言的特点

领会Java语言的特点、关键字

1010-11.Java语言采用多种机制来保证可移植性,其中最主要的是______。虚拟机 1110-11.Java语言是一种 ____强类型语言___ 语言,它约束程序员必须遵守规定编写程序,能让编译器检测出程序中尽可能多的错误。

1.2 Java应用程序和小应用程序

识记 Java应用程序与小应用程序的特点和区别

11.一个应用程序必须在某个类中定义的方法是______。main() 1201-11.能在浏览器上执行的Java程序被称为 小应用程序 。

1.3 Java程序的开发过程

11.Java程序的字节码文件的扩展名是_________。 Class

1001-11.Java的编译程序先将Java源程序翻译成与机器无关的__________。字节码 1101-11.Java源文件的扩展名是_____.java____。

1210-11. 如果Java源文件中有多个类,那么只能有一个__public____类。

1404-11.类Testll经Java编译程序编译后,产生的文件是 ______。Test11.class

1.4 标识符和关键字

简单应用:Java程序的标识符命名规则、注释、基本数据类型

标识符可以用来标识文件名、变量名、类名、接口名和成员方法名等,其构造规则如下:

1) 标识符由Java字母和Java数字组成; 2) 首字符必须是Java字母; 3) 除去关键字、false、true和null; 4) 所有标识符是区分大小写的。 注释:

1) 行注释 2) 块注释 3) 文档注释

// /* ?. */ /** ? */

1404-1.以下标识符中,不是..Java语言关键字的是

A.wait B.new C.long D.switch 1.下述字符组合不能作为Java程序标识符的是( ) A.Aa12 B.大x C.y小 D.5x 1.下面供选字符序列中,不属于...Java语言关键字的是( ) A.goto

B.null C.false D.native

1.在下述字符串中,不属于...Java语言关键字的是 ( C ) A.float

B.new C.java

D.return

1110-1.下面供选字符序列中,不属于...Java语言关键字的是 ( ) A. throw B. synchronizedC. protect D. try

1010-1.以下是关于Java语言关键字的叙述,其中正确的是( ) A.关键字可以用来描述类的成员类型,但是不能描述普通变量

B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成 C.关键字不可以用作变量、方法、类或标号的标识符 D.break和main都是Java语言的关键字

1.5 基本数据类型

0开头表8进制常量,数字只能(0-7) 1.下列字符组合不能作为Java整型常量的是( ) A.078

B.0x3ACB C.5000 D.0x3ABC

1.在Java语言中,用于标记回车符的转义字符是 A.\\b B./b C.\\n

D./n

1001-12.表达式¨23 & 18??的值是__________。 2318 1101-1.在Java语言中,int类型数据的长度是( ) A.1个字节 B.2个字节 C.4个字节 D.8个字节

11.在Java语言中,双精度型变量在内存中占____8______个字节。 1101-l4.布尔类型数组元素的默认初值是____false_____。

第2章 运算和语句

选择 填空 简答 程序填空

2.1 数据运算

识记: 领会:

常用运算符的定义、包声明语句(package)和导入语句(import) 条件运算和其他运算

2.Java语言中数值数据的类型能自动转换,按照从左到右的转换次序为 ( B ) A. byte→int→short→long→float→double B. byte→short→int→long→float→double C. byte→short→int→float→long→double D. short→byte→int→long→float→double

1404-2.以下数据类型转换中,必须进行强制类型转换的是

A.int→char B. short→long C.float→double D. byte→int 2.以下程序代码的输出的结果是( ) int x=53; System. out. println(1.0+x/2);

A.27.0 B.27.5 C.1.026 D.1.026.5

1404-12.表达式“45&20”的十进制值是 ______。 4 ?101100&010100 2.设有定义int i=6;,则执行语句“i+=i-1;??后,i的值为

A.10 B.11 C.12 D.13

1210-12. 运算符??<”、 “*”和“&&”按优先级从高到低的顺序排列为__* < &&____。 21.请写出表示条件“x=2与y=3有且只有一个成立”的Java表达式”。(x=2)!=(y=3)或(x=2&&y!=3)||(x!=2&&y!=3)

12.构造一个Java表达式:y/x>5,并且x!=0。这个表达式是_________。y/x>5 && x!=0

1101-12.表达式-4>>l的十进制值是______-2___。(解法:-4/(2的一次幂))

21.请写出表示year年是闰年的Java表达式。闰年的条件是:每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。(year%4= =0) && (year%4!=0)||(year@0= =0) 简答

12.用条件运算符构造一个表达式:goal等于10时,表达式的值为“对了!”,否则,表达式的值为“错了!”。这个表达式是_________。

1010-2.执行以下代码,输出结果是( )

int x=5,y=7,u=9,v=6;

System.out.println(x>y ? x+2:u>v ? u-3:v+2); A.8 B.6 C.7 D.true 2.以下程序代码的输出结果是( )

int x=73;System.out.println(x>>1);

A.36 B.36.5 c. 37 D.true 1110-2.以下程序代码的输出的结果是 ( ) double x = 25.6;

System.out.println((int)x << 1);

A. 48 B. 50 C. 51 D. 52

1201-2.表达式“-1>>>1”的十进制值是( )

31

A.-2 B.2-1 C.-(231-1) D.232-1

12.在Java语言中,逻辑右移运算符为____>>>______。

2.2 语句

简单应用: 阅读简单程序的功能和输出结果,编写简单的程序

综合应用: Java语言语句的书写形式和语句的语义,算术运算符、自增自减运算符、关系运算符和逻辑运算符

1210-2. 以下关于Java语句的说法正确的是

A. continue语句必须出现在多路按值选择结构或循环结构中 B. return语句可以出现在方法体的外面 C. 编译系统会把单独的分号看成是空语句 D. break语句的作用是提早结束当前轮次循环

1001-21.请写出一段if语句,判断一个整数n是否为偶数。如果是偶数,输出“Yes.”;否则,输出“No.”。

If(n%2==0){System.out.println(“Yes”);}else{System.out.println(“No”);}

1110-12.在Java语言中, package_____ 语句用于表示出现在该文件中的所有类都属于这个程序包。

1010-21.请使用for循环语句计算S=1+double s=0.0

for (int i=1;s<=10;i++) s+=1.0/I;

1404-21.已知变量n,请写出使用for语句计算S?1?111????的值。 2310111????的代码。 23n1101-21.请写一个if语句,判断整数n是否同时满足“被3除余2,被7除余1”的条件,

满足时输出“OK”,否则输出“NO”。 1110-21.请使用for循环语句实现计算s?111的值。 ?????24202.以下程序代码的输出结果是( ) int x = 10; while (x > 7)

{ System.out.print(\;} A.**

B.*** C.* D.****

D.int

1101-2.在switch语句中,switch后面括号内的表达式的类型不能是( ) ..A.byte B.long C.char 1010-12.程序包声明的格式是______。

12.import语句的格式是______。12、import包名.类名; 1201-21.请写出以下程序段的执行结果。 int c=0,d,n=3758;

while(n>0){ if((d=n%l0)>c) c=d;n/=10;} System.out.println(\结果=\; 执行结果:结果=8

21.请写出下面程序段的执行结果。 int n=90; int k=2;

System.out.print(n+″=〞); while(k<=n){

if(k==n){System.out.println(n); break;}

else if(n%k==0){System.out.print(k+″*″);n=n/k;) else k++;

} 90=2*3*3*5

27.方法int maxDigit(int n)的功能是找出十进制整数n各位中最大的一位数字。例如,n=23765,该方法的返回值是7。 static int maxDigit(int n){ int c=0,d; while(n>0){

参考答案:n d=_______;

if(d>c) c=d; return c n/=10; }

________; }

27.方法int sigmaDigit(int n)的功能是求出十进制整数n的各位数字之和。例如,n=1234,该方法的返回值是10。

static int sigmaDigit( int n ) { int sum = 0, d; while( n > 0 ){ d=n% 10;

_________; sum+=d n/= 10; }

_________; return sum

1010-27.方法boolean isPrime(int n)的功能是判断正整数n(n>1)是否为质数。

static boolean isPrime(int n) {

int i;

if(n==2)return true; if(n%2==0)return false;

第七章 图形,图像与多媒体

7.1 绘图基础

识记:Graphics类的基本功能,坐标系统 领会:利用Graphics2D类设置绘图状态属性 简单应用:着色和设置字体

7.一般的绘图程序要定义一个JPanel子类。在JPanel子类中还要重定义一个方法,在这个方法中调用绘图方法,绘制各种图形。要重定义的方法是( ) A.paint() B.paintComponent() C.repaint() D.update()

1101-7.Java语言规定,程序绘图区域的坐标原点位于整个区域的( ) A.左上角B.右上角C.左下角 D.右下角

1001-17.要在JComponent 子类的组件中绘图,应重写__________方法。paintComponet() 1404-17.某应用程序定义的类C17是JPanel的子类,在类C17的对象中需要绘图,则在类 C17中应重写的方法是 ______。paintComponet()

1010-17.在某个组件中绘图,一般应该为这个组件所属的子类重写______方法。paint() 7.以下所述内容全部是字型要素的是( )

A.字体、字形和大小 B.字体、风格和字号 C.字形、风格和字号 D.字形、颜色和字号

7.以下不属于文字字型要素的是 ( A ) ...A.颜色 B.字体C.风格 D.字号

1404-7.以下术语中,属于文字字型风格属性的是

A.颜色 B.宋体C.斜体 D.字号

17.在Java语言中,用类Font对象设置字型。如果要设置的字型是:细明体、正常风格(Font.PLAIN),12磅字号,构造这样要求的Font对象fnA的代码是_________。Font

fnA=new Font(“细明体”,Font.PLAIN.12)

17.某个绘图方法设置成“异或模式”绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是_________。(P140)黄色 1101-17. Java语言的绘图模式有两种,它们是正常模式和_________ 7.设置异或绘图模式的方法是

A.setXORMode() B.setPaintMode() C.XORMode()

D.PaintMode()

7.2 绘图

简单应用:利用Graphics2D类对象绘制几何图形、绘制二次、三次曲线

综合应用:显示文字,绘制基本几何图形

24.请写出一条语句,能够绘制一条从点(20,30)开始,长为100像素的水平线段。设调用的对象是类型为Graphics的g。

(P140)g.drawLine(20,30,120,30);或g.drawLine(120,30,20,30);

25.请写出使用Graphics2D类声明并创建一个左上角为(20,30)、边长为50的正方形对象square的语句。

1404-24.已知Graphics对象g,获得Graphics2D对象g2d,然后,用圆角长方形类创建对象 circle,该对象的左上角坐标是(30,40),半径是50。请写出实现以上要求的Java代 码。

100-24.设已经有Graphics2D对象g2d, 请用Java语句绘制一个矩形rect,其左上角坐标是(20,30),宽是120,高是30。

Rectangle2D rect=new Rectangle2D.Double(20,30,120,30)

G2d.draw(rect);

1201-7.设已经有Graphics2D对象g2d,RoundRectangle2D对象rRect,绘制对象rRect的代码是( )

A.g2d.draw(rRect) B.g2d.drawRoundRect(rRect) C.rRect.draw() D.rRect.drawRoundRect() 1201-17.在异或模式下绘图时,实际绘制的颜色是由当前正要绘制的颜色、原先绘制的颜色,以及 异或模式设定的颜色 作特定的运算确定的。

24.要用Graphics2D类的方法画一个图形,首先要把参数对象g强制转换成Graphics2D对象;然后,用图形类提供的静态方法Double()创建一个图形对象;最后,以图形对象为参数调用Graphics2D对象的draw()方法绘制这个图形。请写出用这样的方法绘制一条线段的程序段,线段的两个端点分别是(10.0,10.0)和(30.0,30.0)。

Graphics2D g2d=( Graphics2D) g;

Line2D line=new Line2D.Double(10,20,30,40); G2d.draw(line)

7.设已经有Graphics2D对象g2d,Rectangle2D对象r,绘制对象r的代码是( ) A.g2d.draw(r)B.g2d.drawRect(r)C.r.draw() D.r.drawRect()

1110-7.设已经有Graphics2D对象g2d,Line2D对象line,绘制对象line的代码是( ) A.g2d.draw(1ine) B.g2d.drawLine(1ine) C.1ine.draw()D.1ine.drawLine() 1110-17.在Graphics类中,用于在指定的位置显示字符串的方法是 _____darwString()__ 。

7.3 图像处理基础

简单应用:显示图像和图像缓冲

1210-17. Java语言的图像处理功能被封装在___ Image _______类中。

30.这是一个播放幻灯片的小应用程序中的paint()方法。设幻灯片已由小应用程序的init()方法装入内存,并存放于myImage数组中,幻灯片的张数放于变量num中,paint()方法要播放的幻灯片号是int currentImage = 0; final int num = 30;

Image [ ] myImage = new _________ [num]; Image ??

public void paint(Graphics g) {

if ((mylmage[currentImage]) != null)

g. _________ (myImage[currentImage], 10, 10, drawImage myImage [currentImage].getWidth(this),

myImage [currentImage].getHeight(this), this); }

1001-30.以下是一个用鼠标自由作画的小应用程序。最简单的方法是根据鼠标所在位置画点,跟随鼠标的移动,不断画圆点,就能实现用鼠标作画。 import java.awt.*; import java.awt.event.*;

public class Test30 extends java.applet.Applet implements MouseMotionListener { Color color;int lineSize=2: int x=-1,y=-l; public void init(){

setLocation(30,20); setSize(300,300);

setBackground(Color.green);addMouseMotionListener(this); }

public void paint(Graphics g){ if(x!=-1&&y!=-1) {

g.setColor(color);g.fillOval(x,y,1ineSize,lineSize); } }

public void mouseMoved(MouseEvent e){} public void mouseDragged(MouseEvent e){

x=e.getX();y=e.getY();___ repaint()______; }

public void ______ update()__ (Graphics g){ paint(g);} ; }

1010-30.某小应用程序的界面有两个按钮,点击“画圆”按钮,程序在窗口画一个圆,点击“画矩形”按钮,程序在窗口画一个矩形。 import java.applet.*; import java.awt.*; import java.awt.event.*;import javax.swing.*;

public class Classl extends Applet implements ActionListener { boolean c = false; int r = 50,a = 50, b = 50; JButton bl, b2; public void init(){

setSize(200, 200); setBackground(Color.blue);

b1 = new JButton(\画 圆\画矩形\ b1.addActionListener(this); b2.addActionListener(this); add(b1); add(b2); setVisible(true); }

public void (Graphics g){ g.clearRect(70, 100, 130, 200); g.setColor(Color. red);

if(c) g.drawRoundRect(70, 100, r, r, r, r); else g.drawRect(70, 100, a, b); }

public void update(Graphics g){ paint(g); } public void actionPerformed(ActionEvent e){ if(e.getSource()==b1) { c = true; } else if(e.getSource()==b2){ c = false; } ; }

}

34.阅读下列程序,请写出该程序的功能。

import java.applet.*; import javax.swing.*; import java.awt.*; import java.awt.event.*;

public class Test34 extends Applet implements ActionListener { JTextField text;int r; JPanel panel; public void paint(Graphics g){

Graphics gc = panel.getGraphics();

gc.clearRect(0,0, panel.getWidth(), panel.getHeight()); gc.setColor(Color.red); gc.fillOval(10, 10, r, r);

}

public void init() {

text = new JTextField(10); panel = new JPanel(); setSize(200, 100); setLayout(new GridLayout(2,1)); add(text); add(panel); text.addActionListener(this); } 以文本框输入的public void actionPerformed(ActionEvent e) { 数字为半径,(1if (e.getSource() == text) { 分)以(10,10)r = Integer.parseInt(text.getText()); 为左上角,(1分)repaint(); 填充一个红色(1} 分)的圆。(1分) } }

1001-36.阅读下列程序,请写出该程序的功能。 import java.applet.*; import java.awt.*;

public class Test36 extends java.applet.Applet implements Runnable{

Thread myThread = null; double seta=0.0; public void start() { setSize(500,400);

if(myThread=null){ myThread=new Thread(this); myThread.start();} }

public void run() {

while(myThread!=null) { try {myThread.sleep(40); } catch(InterruptedException e){}

seta+=3.0; if(seta>=360)seta=0; repaint(); } }

public void paint(Graphics g) {

final double pi=3.14159; final double r = 100.0; int x0=250+(int)(r*Math.cos(3.1415926/180.0*seta)); int y0=200+(int)(r*Math.sin(3.1415926/180.0*seta)); g.setColor(Color.red); g.drawOval(x0,y0,10,10); }

con.setLayout(new GridLayout(3,2));

this.setLocation(100, 100); this.setSize(400, 400); panel 1 = new Panel l ();

label l = new JLabel(\改变前景颜色\ con.add(label 1 ); con. ;//add(panel1) panel 1 .box 1 .addltemListener(this); panel 1 .box 2.addItemListener(this); panel 1 .box 3.addItemListener(this); this. setVisible (true); this.pack(); } ? }

6.2 列表和组合框

简单应用:声明和创建列表、组合框

1210-16. 列表在界面中表现为列表框,是___JList___类或它的子类的对象。 1010-16.组合框(JComboBox)是______的组合。文本框和列表

1101-6.鼠标单击列表中某个选项事件的相关接口是( ) A.ListActionListener B.ListSelectionListener C.ActionListener D.SelectionListener 1110-24.请写出JComboBox对象上可能发生的两种事件类型的名字。

6.3 菜单

综合应用:设置菜单和菜单项、处理菜单和菜单项事件 6.以下关于菜单的叙述中,正确的是( )

A.菜单分三级定义,最高一级的是菜单条,菜单条中放菜单,菜单中放菜单项 B.菜单分三级定义,最高一级的是菜单,菜单中放菜单条,菜单条中放菜单项 C.菜单分两级定义,最高一级的是菜单,菜单中放菜单项

D.菜单分两级定义,最高一级的是菜单条,菜单条中放菜单项

29.以下是生成菜单项对象,以及菜单项选择事件处理方法的部分代码。要求当菜单项singingItem被选中时,在文本框text中输出“唱歌菜单项被选中!”的字样。 ??

singingItem=new________("唱歌");//生成菜单项对象 ??

public void actionPerformed(ActionEvent e){ if(e.getSource()==singingItem)

text.setText(e.________()+ "菜单项被选中!"); } 生成菜单条是用类JMenuBar的构造方法JMenuBar(),把菜单条放入JFrame窗口中用setJMenuBar()方法;生成菜单用类JMenu的构造方法

JMenu()或JMenu(String s);生成菜单项用类JMenuItem的构造方法

JMenuItem()或JMenuItem(String s)。在菜单事件中获得事件源的方法是getSource(),获得事件源文字信息的方法是getActionCommand()。

1001-29.以下是子窗口中设置一个菜单条类的定义。类的构造方法根据指定的窗口名称和菜单表设置菜单条,菜单和菜单项,当选中某个菜单项时,在文本框中显示相应菜单项被选中的信息。

class MenuWindow extends JFrame implements ActionListener { public static JTextField text;

public MenuWindow(String s,String menuList[][]) { setTitle(s);

Container con=this.getContentPane(); con.setLayout(new BorderLayout());

this.setLocation(100,100); this.setSize(300,100); JMenuBar menubar=new JMenuBar(); for(int i=0; i

JMenu menu=new JMenu(menuList[i][0]); for(int j=1;j

JMenultem anltem=new JMenultem(menuList[i][j]); anltem.setActionCommand(menuList[i][j]);

anltem.___ ActionListener(this)_____;menu.add(anltem); }

menubar.__ add(menu)________; }

text=new JTextField();setJMenuBar(menubar); con.add(text,BorderLayout.SOUTH); }

public void actionPerformed(ActionEvent e){

text.setText(e.getActionCommand()+″菜单项被选中! ″); } }

public class Test29 extends Applet { MenuWindow window;

String menuList[][]={{″体育″,″跑步″,″打蓝球″,″打乒乓″}, {″娱乐″,″唱歌″,″跳舞″}}; public void init() {

window=new MenuWindow(″体育娱乐之窗″,menuList);

window.setVisible(true); }

}

35.阅读下列程序,请回答以下问题:

(1)该程序的菜单条中共有几个菜单项? (2)单击哪个菜单项,可以打开一个对话框? (3)该对话框是强制型还是非强制型? (4)该对话框中显示的是什么内容? Import javax.swing.*;import java.awt.*; import java.awt.event.*; import java.util.*; class MyDialog extends JDialog { MyDialog(JFrame F, String s) {

super(F, s, false); Date date = new Date();

String t = date.toString(); JLabel text = new JLabel(t); add(text); setSize(200,100); setVisible(true); } }

public class MenuDemo extends JFrame implements ActionListener { JMenuBar menubar; JMenu action; JMenuItem show, set, quit; public MenuDemo() {

menubar = new JMenuBar(); setJMenuBar(menubar); action = new JMenu(''操作''); menubar.add(action); show= new JMenuItem(''显示''), action.add(show); set = new JMenuItem(\设置\); action.add(set);

action.addSeparator(); quit = new JMenuItem(\退出\); action.add(quit); show.addActionListener(this); set.addActionListener(this); quit.addActionListener(this); setSize(300,300); setVisible(true); }

public void actionPerformed(ActionEvent e) {

if(e.getSource() == show) {MyDialog diag = new MyDialog(this, \信息\);} else if(e.getSource()== set) { this.setTitle(\菜单演示\);} else if(e.getSource() == quit){ System.exit(0); } }

public static void main(String[] args) {new MenuDemo();} }

(1)3个菜单项(1分) (2)“显示”菜单项(1分) (3)非强制型对话框(1分)

(4)显示当前事件(1分)

6.4 对话框

简单应用:声明和创建对话框

1010-24.在Swing中,对话框有几种?并请写出它们的主要区别。P121 1101-16.对话框的默认布局是____BorderLayOut_____。

1110-16.强制型对话框强制对话过程 ____不能中断___ ,直至对话过程结束,才让程序响应对话框以外的事件。 1210-6. 以下不是..JDialog类构造方法的是 A. JDialog( )

C. JDialog(JFrame f, String s)

B. JDialog(boolean b)

D. JDialog(JFrame f, String s, boolean b)

16.在构造非强制对话框时,所使用的构造方法是JDialog(f,s, ___false__),其中f为对话框所依赖的窗口,s为对话框的标题。

1001-38.请设计实现如下用于输入学号和姓名的对话框界面,其中空白格是文本框,用于输入相应的内容。

这里给出的是程序的一部分,你要编写的是类InputNoNameDialog的构造方法InputNoNameDialog(JFrame f,String s,JTextField t)。其中参数f是对话框的依赖窗口,s是对话框标题,t是依赖窗口中显示对话框输入内容的文本框。 以下是类InputNoNameDialog的程序框架。

class InputNoNameDialog extends JDialog implements ActionListener{ JLabel title;JTextField textl,text2,mainText;JButton done; InputNoNameDialog(JFrame f ,String s,JTextField t) {

super(f,s,true); mainText = t;Container con = getContentPane(); title=new JLabel(s); textl=new JTextField(10);

text2=new JTextField(10); con.setLayout(new GridLayout(3,2)); con.setSize(200,100); setModal(false); //请在以下位置续写其余代码

答: done=new JButton(\确定\ done.addActionListener(this); con.add(title);con.add(done);

con.add(new JLabel(\学号\ con.add(new JLabel(\姓名\

setVisible(true); }

public void actionPerformed(ActionEvent e) {

//输入结束按确定按钮后,将对话框中输入的学号和姓名在它依赖窗口的文本框中显示。 mainText.setText(″学号:″+textl.getText()+″ 姓名:″+text2.getText()); setVisible(false);dispose(); } }

6.5 滚动条

简单应用:声明和创建滚动条

1404-1 6.一个水平滚动条对象的初始值是1 50,滑块的宽是8个像素,表示的范围是[0,300]。 创建这样的滚动条对象时,提供的最后2个参数依次是______。0,300 35.阅读以下程序,请写出该程序的功能。

import javax.swing.*; import java.awt.*;import java.awt.event.*; class MyScrollBar extends JscrollBar{

public MyScrollBar(int init, int len, int low, int high){ super(JScrollBar. HORIZONTAL, init,len,low,high); } }

class MyWindow extends JFrame implements AdjustmentListener{ private JTextField text; MyWindow(String s){

滑动滚动条的滑块,super(s);

在文本框显示块位MyScrollBar myBar=new MyScrollBar(10,10,0,255);

Container con=this. getContentPane(); 置对应的数值 con. setLayout(new GridLayout(2,1)); this. setSize(200,100); this. setLocation(100,100);

myBar.addAdjustmentListener(this); text=new JTextField("",20); con. add(text);con.add(myBar); this.setVisible(true); }

public void adjustmentValueChanged(AdjustmentEvent e){ MyScrollBar myBar=(MyScrollBar)e.getAdjustable(); text.setText(""+myBar.getValue()); } }

public class Class1{

public static void main(String[]args){

MyWindow myWindow=new MyWindow("text5_4"); } }

1010-35.阅读下列程序,请写出该程序的功能。

import javax.swing.*; import java.awt.*; import java.awt.event.*;

class MyScrollBar extends JScrollBar {

public MyScrollBar(int init, int len, int low, int high){ super(JScrollBar.HORIZONTAL, init, len, low, high); }

public Dimension getPreferredSize(){ return new Dimension(125, 20); } }

class MyWindow extends JFrame implements AdjustmentListener{ private JTextField text; MyWindow(String s){ super(s);

MyScrollBar tempBar = new MyScrollBar(l0, 10, 0, 255); Container con = this.getContentPane(); con.setLayout(new GridLayout(2,1));

this.setSize(250, 100); this.setLocation(100, 100); tempBar.addA djustmentListener(this); text= new JTextField(\移动滚动条的滑块\

con.add(text); con.add(tempBar); this.setVisible(true); this.pack(); }

public void adjustmentValueChanged(AdjustmentEvent e){ MyScrollBar myBar=(MyScrO11Bar)e.getAdjustable(); text.setText(\选择的值是:\; } }

public class Test35 {

public static void main(String[] args) { new MyWindow(\滚动条示意程序\}

1001-16.一个水平滚动条对象的初始值是50,滑块的宽是10个像素,表示的范围是[0,250]。 创建这样的滚动条对象时,提供的5个参数依次是__________。(P125)JScrollBar.HORIZONTAL,50,10,0,250

23.请写出将文本区text放置于滚动面板jsp,并将滚动面板jsp添加到JFrame窗口myFrame的Java语句。

TextArea text=new TextArea(); JScrollPane jsp=new JScrollPane(text); myFrame.getContentPane().add(jsp);

6.6 鼠标事件

识记:鼠标事件类型、处理接口、处理方法

1404-6.MouseMotionListener接口能处理的鼠标事件是

A.按下鼠标键 B.鼠标点击C.鼠标进入 D.鼠标移动 6.用于判定鼠标右键操作的常量是

A.BUTTON1_MASKB.BUTTON2_MASKC.BUTTON3_MASK D.BUTTON4_MASK

1201-16.注册鼠标点击事件监视器的方法是 addMouseListener(监视器) 。

16.Java语言为处理鼠标事件提供两个接口:_________接口和MouseMotionListener接口。 MouseListener

6.MouseListener接口不能处理的鼠标事件是 ( D ) ..A.按下鼠标左键 C.鼠标进入

B.点击鼠标右键 D.鼠标移动

1010-6.在以下供选择的方法中,属于接口MouseMotionListener的方法是( ) A.mouseReleased() C.mouseExited()

B.mouseEntered() D.mouseMoved()

1110-6.在以下选项中,属于MouseListener接口的方法是 ( ) A.mouseDoubleClicked(MouseEvent) C.mouseMoved(MouseEvent)

B.mouseDragged(MouseEvent) D.mousePressed(MouseEvent)

28.以下小应用程序能响应鼠标按动的事件,当鼠标在正文区的某个位置被点击时,就在该位置显示一个记号“×”,程序限制最多保留最新20个位置。 import java.applet.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; class MyPanel extends JPanel { public void print(Graphics g, int x, int y)( g.setColor(Color.red); g.drawLine(x-5, y-5, x+5, y+5);

g.drawLine(x+5, y-5, x-5, y+5); } }

class MyWindow extends JFrame implements MouseListener{ final int MaxMarks = 20;

int currentMarks = 0, markCount = 0; Point marks[] = new Point[MaxMarks]; MyPanel panel; MyWindow(){

this.setLocation(100, 100); this.setSize(300, 300);

Container con = this.getContentPane(); panel = new MyPanel(); con.add(panel); _________(this); addMouseListener this.setVisible(true); }

public void paint(Graphics g){ int i;

g.clearRect(0,0, this.getWidth(), this.getHeight()); for(i =0;i < markCount; i++) {

_________(g, marks[i].x, marks[i].y); panel .print //注意上下文 } }

public void mousePressed(MouseEvent e){ } public void mouseReleased(MouseEvent e){ } public void mouseEntered(MouseEvent e){ } public void mouseExited(MouseEvent e){ } public void mouseClicked(MouseEvent e){

marks[currentMarks] = new Point(e.getX(), e.getY()); if(markCount < MaxMarks)markCount++;

currentMarks = (currentMarks+ 1)%MaxMarks; repaint(); } }

public class Class1 extends Applet { public void init(){

MyWindow myWndow = new MyWindow(); } }

1001-28.以下程序创建了一个窗口,然后在窗口内显示″Hello,World! ″。 import javax.swing.*; import java.awt*; public class HelloWorld {

public static void main(String[ ]ares) { TextFrame frame=new TextFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame. ____ setVisable(true)____; } }

class TextFrame extends JFrame { public TextFrame() { . setTitle(″HelloWorld″); setSize(WIDTH,HEIGHT); TextPanel panel=new TextPanel(); Container contentPane=getContentPane(); contentPane.add(panel); }

public static final int WIDTH=300; public static final int HEIGHT= 200; }

class TextPanel extends JPanel {

public void paintComponent(Graphics g) {

super. ___ paintComponent(g)_____; g.drawString(″Hello,World! ″,x,y);

}

public int x=100; public int y=100; }

6.7 键盘事件

简单应用:键盘事件处理方法

1001-35.阅读下列程序,请写出该程序的功能。

import java.applet.*:import java.awt.event.*;import javax.swing.* public class Class 1 extends Applet implements KeyListener{

JButton button=new JButton(″开始″); JTextArea text=new JTextArea(5,20); public void init() {

button.addKeyListener(this); add(button);add(text); }

public void keyPressed(KeyEvent e){ int t=e.getKeyCode();

if(t>=KeyEvent.VK_A&& t<=KeyEvent.VK_Z) { text.append(″ ″+(char)t); } }

public void keyTyped(KeyEvent e){} public void keyReleased(KeyEvent e){} }

答:程序功能:从键盘输入字符如果是大写字母A-Z,则显示在文本区中 16.处理键盘事件的Java程序,要实现的接口是______。KeyListener

百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库047471604Java语言程序设计(一)在线全文阅读。

047471604Java语言程序设计(一).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.70edu.com/wenku/193688.html(转载请注明文章来源)
Copyright © 2020-2025 70教育网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:370150219 邮箱:370150219@qq.com
苏ICP备16052595号-17
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:7 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219