计算机等级《二级JAVA》预测试卷(一)

计算机等级《二级JAVA》预测试卷(一)

一、单项选择题(共40题,合计40分)

1下列运算结果为l的是(  )。
A. 8>>1
B. 4>>>2
C. 8<<1
D. 4<<<2
[正确答案]B

试题解析:
符号>>是按位右移运算符,<<是按位左移运算符,>>>是添零右移运算符,没有<<<运算符。

2软件生命周期是指(  )。
A. 软件产品从提出、实现、使用维护到停止使用退役的过程
B. 软件从需求分析、设计、实现到测试完成的过程
C. 软件的开发过程
D. 软件的运行维护过程
[正确答案]A

试题解析:
软件生命周期(SDLC,Systems Development Life Cycle)是软件的产生直到退役的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段。

3在电子邮件程序向邮件服务器中发送邮件时,使用的是简单邮件传输协议,下列(  )是简单邮件传输协议。
A. POP3
B. IMAP
C. HTTP
D. SMTP
[正确答案]D

试题解析:
在电子邮件程序向邮件服务器中发送邮件时,使用的是简单邮件传输协议(SMTP),而在电子邮件程序从邮件服务器中读取邮件时,可以使用邮局协议(POP3)。

4下列代表十六进制整数的是(  )。
A. 0XA6
B. 1234L
C. -840
D. 0144
[正确答案]A

试题解析:
本题考查Java语言中的整型常量。整型常量有3种书写格式:十进制整数、八进制整数和十六进制整数。十六进制整数以0x或0X开头,如0X123表示十进
制数291。选项A表示的是十六进制整数,选项B是long类型整型常量,选项C是十进制整数,选项D是八进制整数,因此选项A为本题正确选项。

5Java语言中。负责并发管理的机制是(  )。
A. 垃圾回收
B. 虚拟机
C. 代码安全
D. 多线程
[正确答案]D

试题解析:
多线程是Java程序的并发机制,它能同步共享数据、处理不同的事件。

6下面程序段的输出结果是(  )。
public class Test(
public static void main(String args[]){
int[]a=new int[113;
int[]p=new int[43;
int k=5:
for(int i=1;i<=10;i++)
a[i]=i;
for(int i=1;i<=3;i++)
p[i]=a[i*i];
for(int i=1;i<=3;i++)
k=k+p[i]*2;
System.out.println(k);
}
}
A. 37
B. 31
C. 33
D. 35
[正确答案]C

试题解析:
本题是对for循环语句和数组的综合考查。题中共定义了两个数组:a[]和p[],共用了3次for循环;第1个for语句对数组a[i]赋值;第2个for语句对数组P[i]赋值;第3个for语句计算k的值。3次循环分别得到:5,15和33。正确答案为选项C。

7下面程序的正确输出是(  )。
public class Hello
{
public static void main(String args[])
{
int count,xPos=25;
for(count=1;count<=10;count++)
{
if(count= =5)
Break;
system.Out.println(count);
xPos+=10:
}
}
}
A. 1 2 3 4
B. 1 3 4
C. 编译错误
D. 以上都不正确
[正确答案]A

试题解析:
该程序经过编译、运行后,在屏幕上显示:l 2 3 4。public class Hello中Hello为类名,public staticvoid main(String args[])有关参数的解释如下:public表示该方法可以被任意代码所调用,包括Java解释器;static告诉编译器,main()方法是一个类方法,可以通过类名直接调用,调用时不需要该类的实例对象;void表示main()方法没有返回值,这是非常重要的,因为Java类型检查非常严格,包括检查这些方法返回值的类型是否与声明的一致;Stringargs[]声明一个字符串类型的数组,它是命令行传递给main()方法的参数,参数在命令行中出现在类名称后面。包含main()方法的类(Hello为包含main()方法的类名)名称必须与其文件名相同,也就是说,其文件名必须为Hello.java。 经过编译,在当前文件夹下将出现一个Hello.class文件,这就是编译后的字节码文件。在程序段最后有两个大括号,分别说明结束main()方法和Hello类。在本程序中由于有 count= =5这个条件判断,因此当count= =5时,程序结束,输出为1 2 3 4。

8阅读下面程序
importjava.io.*;
public class TypeTransition{
public static void main(String args[]){
char a=‘h’;
int i=100 ;
int J=97;
int aa=a+i;
System.out.println(“aa=”+aa);
char bb=(char)j;
System.out.println(“bb=”+bb):
}
}
如果输出结果的第二行为bb=a,那么第一行的输出结果是(  )。
A. aa=I
B. aa=204
C. aa=v
D. aa=156
[正确答案]B

试题解析:
本题考查的是Java的基本数据类型及其运算。程序开始生成了一个字符型变量a和3个整型变量i、j、aa。而整型变量aa的初始值是a+i,其中a是一个字符型变量。如何进行加法运算呢?Java语言规定,char型数据可以自动转换成int类型,转换的结果就是该字符的ASCIl码值。因此,整型变量aa的初始值为字符”h”的ASCIl码值加上l00。如果记住h的ASCIl码值是104,则直接就确定aa的初始值是204,选项B为正确答案。如果记不得h的ASCIl码,题目中则给出提示。题目中说”输出结果的第二行为bb=a”,也就是字符bb的值为字符a,bb的生成语句是char bb=(char)j,是把整型变量j的值强制转换为字符型。同样,把ASCIl码值为j(97)所对应的字符赋值给bb。显然,字符a的ASCIl码值为97,字符b的ASCIl码值为98,依次类推,字符h的ASCIl码为l04。因此,本题的正确答案是B。

9下列叙述中,错误的是(  )。
A. File类能够存储文件
B. File类能够读写文件
C. File类能够建立文件
D. File类能够获取文件目录信息
[正确答案]B

试题解析:
本题考查考生对Java中File类的理解。文件File是java.i0包中的一个重要的非流类,以一种系统无关的方式表示一个文件对象的属性。通过File所提供的方法,可以得到文件或目录的描述信患(包括名字、路径、长度、可读和可写等),也可以生成新文件、目录,修改文件和目录,查询文件属性,重命名文件或者删除文件。File描述了文件本身的属性,File类中封装了对文件系统进行操作的功能。简单说,File类所关心的是文件在磁盘上的存储,而要对文件进行读写,就是流类所关心的文件内容,应该掌握相关概念以及相关方法。

10有下列二叉树,对此二叉树中序遍历的结果为(  )。

A. ABCEDF
B. ABCDEF
C. ECBDFA
D. ECFDBA
[正确答案]C

试题解析:
二叉树的中序遍历是指先访问左子树。再访问树结点,最后访问右子树;当访问下级左右子树时,也对照此原则。所以C选项正确。

11向Applet传递参数的正确描述是(  )。
A. <param name=age,value=20>
B. <applet code=Try.class width=100,height=100, age=33>
C. <name=age,value=20>
D. <applet code=Try.class name=age,value=20>
[正确答案]A

试题解析:
标记的参数部分一般格式是[]。

12栈S最多能容纳4个元素,现有6个元素按A、B、C、D、E、F的顺序进栈,下列(  )序列不是可能的出栈序列。
A. C、B、E、D、A、F
B. C、D、B、F、E、A
C. A、D、E、C、B、F
D. A、F、E、D、C、B
[正确答案]D

试题解析:
栈的特性为后进先出,而栈S只能容纳4个元素。当F进栈时,说明栈中有已有B、C、D、E四个元素,所以F无法进栈。

13模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的(  )。
A. 抽象和信息隐蔽
B. 局部化和封装化
C. 内聚性和耦合性
D. 激活机制和控制方法
[正确答案]C

试题解析:
模块的独立性是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。

14下列关于链式存储结构的叙述中,不正确的是(  )。
A. 结点除自身信息外还包括指针域,因此存储密度小于顺序存储结构
B. 逻辑上相邻的结点物理上不必相邻
C. 可以通过计算确定第i个结点的存储地址
D. 插入、删除运算操作方便,不必移动结点
[正确答案]C

试题解析:
链式存储结构的主要特点有:①结点中除自身信息外,还有表示链接信息的指针域,因此存储密度小、存储空间利用率低;②逻辑上相邻的结点物理上不必相邻;③插入、删除操作灵活方便。线性存储结构可以通过计算确定第i个结点的存储地址,但链式存储结构不能。

15破坏死锁的4个必要条件之一就可以预防死锁。假如规定一个进程在请求新资源之前首先释放已占有的资源,则是破坏了哪个条件?(  )
A. 互斥使用
B. 部分分配
C. 不可剥夺
D. 环路等待
[正确答案]B

试题解析:
若一个进程请求新资源之前首先释放已占有的资源,这破坏了部分分配条件。

16在Java中,所有类的根类是(  )。
A. java.lang.Object
B. java.lang.Class
C. java.applet.Applet
D. java.awt.Frame
[正确答案]A

试题解析:
本题考查考生对Java类的掌握。在Java中java.lang包封装着所有编程应用的基本类。Object是所有类的根,它所包含的属性和方法被所有类集成。Class类是由编译器自动生成对象的一个特殊类,它伴随每个类。选项C和选项D都是普通类。

17在一所大学中,每个系都有自己的局域网,则连接各个系的校园网(  )。
A. 是广域网
B. 还是局域网
C. 是地区网
D. 这些局域网不能互连
[正确答案]B

试题解析:
广域网是指远距离的计算机互联网络,分布范围可达几千千米乃至上万千米甚至跨越国界、州界、遍及全球范围。局域网是指一个局部区域中的、近距离的计算机互联网络,通常采用有线方式连接,分布范围从几百米到几千米。例如,一座大楼内或相邻的几座楼之间的互联网络。一个单位、学校内部的网络多为局域网。

18下列叙述中正确的是(  )。
A. 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B. 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C. 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D. 上述三种说法都不对
[正确答案]C

试题解析:
栈是限制仅在表的一端进行插入和删除的运算的线性表,通常称插入、删除的这一端为栈顶,另一端称为栈底。

19执行下列赋值语句后,a的值为(  )。 a=Float.valueOf(“12.34”).floatValue();
A. 12
B. 34
C. 0.34
D. 12.34
[正确答案]D

试题解析:
本题考查基本类型的类包装。Float类的valueOf()函数的原型是:staticFloatvalueOf(Strings),它是一种静态方法,将字符串的内容提取出来转换为Float对象。而floatValue()函数的原型是:floatfloatValue()。它返回FIoat对象的浮点值。本题中,先将字符串"12.34"转换为Float对象,然后再提取该对象的浮点型值,赋给a。

20顺序存储结构的优点是(  )。
A. 删除运算方便
B. 存储空间利用率高
C. 插入运算方便
D. 可以方便地运用到各种逻辑结构的存储表中
[正确答案]B

试题解析:
顺序结构逻辑上相邻的结点物理上也是相邻的。因此,其存储密度大,存储空间利用率高,但插入、删除运算操作不方便,需移动大量的结点。

21有下列二叉树,对此二叉树前序遍历的结果为(  )。

A. XZCYAB
B. XYZABC
C. XYABCZ
D. XYAZBC
[正确答案]D

试题解析:
对二叉树的前序遍历是指:先访问根结点,然后访问左子树,最后访问右子树,并且,在访问左、右子树时,先访问根结点,再依次访问其左、右子树。

22下列叙述中正确的是(  )。
A. 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化
B. 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化
C. 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化
D. 上述三种说法都不对
[正确答案]C

试题解析:
栈是限制仅在表的一端进行插入和删除的运算的线性表,通常称插入、删除的这一端为栈顶,另一端称为栈底。

23在设计程序时,应采纳的原则之一是(  )。
A. 不限制goto语句的使用
B. 减少或取消注解行
C. 程序越短越好
D. 程序结构应有助于读者理解
[正确答案]D

试题解析:
程序设计中,程序不要求长度,以结构清晰、易于理解为标准,程序员可以添加注释来助于理解,同时要尽量少用goto语句,否则会破坏程序的结构。

24对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为(  )。
A. 并运算
B. 交运算
C. 差运算
D. 积运算
[正确答案]A

试题解析:
关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。

25如果有一个类MyFrame是Frame的子类,但它不能被实例化,请写出该类的声明头为(  )。
A. abstract class Frame extends MyFrame
B. abstract class MyFrame extends Frame
C. class MyFrame abstract extends Frame
D. class Frame abstract extends MyFrame
[正确答案]B

试题解析:
本题考查考生对类声明的理解。类声明的格式为:[修饰符]class类名[extends父类名][implements类实现的接口列表],其中口括起来的内容为可选项。关键字class是类定义的开始,类名应符合标识符命名规则。关键字extends指明该类是子类,它的父类名紧跟其后,子类与父类之间有继承关系。关键字implements指明该类实现的接口,后跟接口名列表。考生应注意掌握类声明的概念,虽然很简单,但容易漏掉有关修饰符。题目要求声明不能被实例化的类,因此应该是一个抽象类,用abstract作为修饰符。

26对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为(  )。
A. 125
B. n/2
C. n
D. n+l
[正确答案]C

试题解析:
对线性表进行顺序查找时,从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比 较,直到两者相符,查找到所要找的元素为止。在最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。

27用于输入压缩文件格式的ZiplnputStream类所属包是(  )。
A. java.util
B. java.io
C. java.nio
D. java.util.zip
[正确答案]D

试题解析:
本题考查ZiplnputStream类的基本概念。压缩文件输入流都是InflatelnputStream的子类,是以字节压缩为特征的过滤流。主要有三类,应该有所了解。 ZiplnputStrearh"类在java.util.zip包中,该类用于输入以gzip格式进行压缩的文件,是对输入文件类型的一种过滤。ZiplnputStream类也在java.util.zip包中,用于输入zip格式的文件,这是对于文件类新格式的一种过滤。JarInputStream类在java.util.jar包中,是ZipInputStream的子类,用于输入jar文件。

28在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送(  )。
A. 调用语句
B. 命令
C. H令
D. 消息
[正确答案]D

试题解析:
在面向对象方法中,对象之间通过消息进行通信。消息中只包含传递者的要求,但并不指示接受者应该怎么完成这些处理。

29下列选项中为单精度数的是(  )。
A. 2
B. 5.2
C. 0.2f
D. 023
[正确答案]C

试题解析:
Java中单精度常量以f或F结尾。

30数据库技术的根本目标是要解决数据的(  )。
A. 存储问题
B. 共享问题
C. 安全问题
D. 保护问题
[正确答案]B

试题解析:
在数据库系统中,需要对数据进行集合、统一的管理,以达到被多个应用程序共享的目标。

31为了支持压栈线程与弹栈线程之间的交互与同步,在程序的下画线处依次填入的语句是(  )。
public class IntStack{
private int idx=0;
private int[]data=new int[8];
public void push(int i){
data[idx]=i;
idx++;

… …
}
A. synchronized() notify()
B. synchronized this.wait()
C. synchronized  this.notify()
D. Serializable  sleep()
[正确答案]B

试题解析:
在Synchronized块中等待共享数据的状态改变时调用wait()方法,这样该线程进入等待状态暂时释放共享数据对象的锁。

32在读字符文件Employee.dat时,使用该文件作为参数的类是(  )。
A. BufferedReader
B. DatalnputStream
C. DataOutputStream
D. FileInputStream
[正确答案]D

试题解析:
本题考查java.io包中的字符输入流。Java的输入输出包括字节流、文件流和对象流等,要注意区分不同流使用的不同类。字符类输入流都是抽象类InputStreamReader及其子类FileReader、BufferedReader等。选项A中BufferedReader是把缓冲技术用于字符输入流,提高了字符传送的效率,但它不能处理文件流。选项B中DataInputStream类是用来处理字节流的,实现了Datalnput接口,不能处理文件流。选项C中DataOutputStream类实现了DataOutput接口,不能处理文件流。选项D中FileInputStream可对一个磁盘文件涉及的数据进行处理,满足题目要求。

33下面描述中,不属于软件危机表现的是(  )。
A. 软件过程不规范
B. 软件开发生产率低
C. 软件质量难以控制
D. 软件成本不断提高
[正确答案]A

试题解析:
①对软件开发的进度和费用估计不准确;②用户对已完成的软件系统不满意的现象时常发生;③软件产品的质量往往靠不住;④软件常常是不可维护的;⑤软件通常没有适合的文档;⑥软件成本在计算机系统总成本中所占的比例逐年上升;⑦软件开发生产率提高的速度,远远跟不上计算机应用迅速普及深入的趋势。

34下列关于Applet生命周期的说法,正确的是(  )。
A. voidinit()在Applet下载前调用
B. voidstart()只在初始化之后调用
C. voidstop()在关闭浏览器时调用
D. stop()总在voiddestroy()之前被调用
[正确答案]D

试题解析:
本题考查Applet生命周期的概念。Applet生命周期是考试重点考查内容,应该加以重视。init()在Applet下载时调用,而不是下载前调用,选项A错误。start()在初始化之后以及在Applet被重新访问时调用,不仅仅只是在初始化之后调用,选项B错误。stop()在停止执行时调用,关闭浏览器时调用的是destroy(),选项C错误。destroy()在关闭加载Applet的浏览器从系统中撤出时调用,此时Applet必然调用stop()方法停止其运行,然后才能调用destroy()方法从内存卸载并释放该Applet的所有资源。注意理解Applet的执行过程。

35结构化程序所要求的基本结构不包括(  )。
A. 顺序结构
B. GOT()跳转
C. 选择(分支)结构
D. 重复(循环)结构
[正确答案]B

试题解析:
结构化程序设计的三种结构是顺序、分支和循环,不包括goto跳转,它只是分支结构的一种,也是一个关键字。

36阅读下列程序:
Public class Test implements Runnable{
Private int x=0l
Private int y=0;
boolean flag=true;
Public static void main(string[]args){
Test r=new Test();
Thead tl=new Thead®;
Thead t2=new Thead®;
tl.start();
t2.start();
}
Public void run(){
While(flag){
x++;
y++;
system.out.println("("+x-","+y+")");
if(x>=10)
flag=false;
}
}
}
下列对程序运行结果描述的选项中,正确的是(  )。
A. 每行的(x,y)中,可能有x≠y;每一对(x,y)值都出现两次
B. 每行的(x,y)中,可能有x≠y;每一对(x,y)值仅出现 一次
C. 每行的(x,y)中,可能有x=y;每一对(x,y)值都出现两次
D. 每行的(x,y)中,可能有x=y;每一对(x,y)值都出现
[正确答案]B

试题解析:
本题考查的是线程的知识,变量XY是在线程外部定义的,所以每一对(X,Y)只出现一次。

37下列横线处应填写的语句是(  )。
import JaVa.awt.*;
public class FirstFrame extends Frame{
public static void main(String args[]){
FirstFrame fr=new FirstFrame(“First container!”);
fr.setsize(240,240);
fr.setBackground(Color.yellow);
}
public FirstFrame(String str){
super(str);
}
}
A. fr.setVisible(true)
B. fr.setVisible(false)
C. fr.setFrame(true)
D. fr.setmyFrame(true)
[正确答案]A

试题解析:
本题考查容器的概念。题目所给程序段的容器是一个窗口,窗口中并没有放置其他构件,由于默认为不可见,因此需要调用setVisible(true)将窗口设置为可见的。需要注意题目程序只是生成一个窗口,但是并不能响应用户的操作,即使是单击窗口右上角的“关闭”按钮,也不能关闭窗口。

38下列叙述中正确的是(  )。
A. 在面向对象的程序设计中,各个对象之间具有密切的关系
B. 在面向对象的程序设计中,各个对象都是公用的
C. 在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D. 上述3种说法都不对
[正确答案]C

试题解析:
面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。

39关于下列代码编译或执行结果的描述中,正确的是(  )。
public class Test{
public static void main(String argsE]){
TcstThread pml=new TestThread(“One”)
pml.start();
TestThread pm2=new TestThread(“Tw0”)
pm2.start();
}
}
class TestThread extends Thread(
private String sTname="";
TestThread(String s){
sTname=s;
}
public void run(){
for(int i=O;i<2;i++){
try{
sleep(1000);
}catch(InterruptedException e){}
system.out.print(sTname+"");
}
}
}
A. 不能通过编译,TestThread类中不能定义变量和构造方法
B. 输出One One Two Two
C. 输出Two One One Two
D. 选项B或C都有可能出现
[正确答案]D

试题解析:
启动两个线程,线程之间没有进行同步,所以B和C均有可能。

40sum的值为0,则result=sum = =o?1:num/sum的值为(  )。
A. 0
B. 1
C. Ol
D. 无法输出
[正确答案]B

试题解析:
本题考查条件运算符”?”的用法。该运算符是三元运算符,一般形式为:表达式?语句l:语句2。其中,表达式的值为一个布尔值,如果这个值为true,就执行诏句1,否则执行语句2。此外语句1和语句2需要返回相同的数据类型,而且该类型不能是void。本题中sum= =0成立,故值为1。

二、基本操作题(共1题,合计18分)

41本题随机产生若干字母(A~Z间),直到出现字母Q停止。
public ClaSS javal{
public static void main(String[]args){

do{
c=(char)( );
System.out.print(c+",");
}while( );
}
}
[正确答案]第1处:char C
第2处:(int)(Math.random()*26)+‘A’
第3处:C!=‘Q’
【解析】第1处是定义变量,从下面的变量赋值语句和输出语句可看出应为字符型变量c;第2处是通过将字符A随机加上0~26之间的数来达到随机产生A~Z之间字符的结果。第3处是do-while循环的终止条件。

三、应用题(共1题,合计24分)

42本题是一个Applet,页面中有两个文本域,当左侧文本域中的文本发生变化时,该文本域中的文本以行为单位按长度由短到长排列在右边的文本域中。
import java.util.
import java.applet.

import java.awt.
import java.awt.event.

Dublic class java2 extends Applet implements TextLis-
tener
{TextArea textl,text2;
public void init()
{textl=new TextArea(6,15);
text9=new TextArea(6,15);
add(textl);add(text2);
text2.setEditable(false);

}
public void
{if(e.getSource()= =textl)
{String s=textl.getText();
StringTokenizer fenxi=new StringTokenizer(s,"
,’\n’");
int n=fenxi.countTokens();
String a[]=new String[n];
for(int i=0;i<=n-1;i++)
{String temp=fenxi.nextToken();
a[i]=temp;
}
for(int i=0:i<=n-1;i++)
{for(int j=i+1;j<=n-1;j++)
{if(a[j].compareTo(a[i])<0)
{String t=a[j];a[j]=a[i];a[i]=t;
}
}
}
text2.setText(null);
for(int i=0;i<n;i++)
{text2.append(a[i]+"\n");
}
}
}
}
[正确答案]第1处:textl.addTextListener(this)
第2处:textValueChanged(TextEvent e)
【解析】第1处注册文本监听器;第2处textValueChanged在对象中的文本内容发生变化时,就会被触发并执行该方法所定义的操作。

四、综合题(共1题,合计18分)

43本题的功能是获得系统剪贴板中的内容。窗口中有一个菜单“Edit”和一个文本域,“Edit”中有菜单项“Cut”、“Copy”和“Paste”,在文本域中输入内容,可以通过菜单进行剪切、复制和粘贴操作,如果系统剪贴板为空,又做粘贴操作的话,则设置文本域中背景颜色为红色,并显示错误信息。
import Java.awt.
importjava.io.

import java.awt.datatransfer.
import java.awt.event.

class java3 extends Frame implements ActionListener,
ClipboardOwner{
TextArea textArea=new TextArea();
java3(){
super(“java3”);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
MenuBar mb=new MenuBar();
Menu m=new Menu(“Edit”);
setLayout(new BorderLayout());
add(“Center”,textArea);
m.add(“Cut”);
m.add(“Copy”);
m.add(“Paste”);
mb.add(m);
setMenuBar(this);
for(int i=0;i<m.gethemCount();i++){
m.itern(i).addActionListener(this);
}
setSize(300,300);
show();
}
public void actionPerformed(ActionEvent evt){
if(“Paste”.equals(evt.getActionCommand())){
boolean error=true;
Transferable t=
getToolkit().getSystemClipboard().getContents
(this);
try{
if(t! =null&&t.isDataFlavorSupported(Dat-
aFlavor.stringFlavor)){
textArea.setBackground(Color.white);
textArea.setForeground(Color.black);
textArea.replaceRange(
(String)t.getTransferData(DataFlavor.stringFla-
vor),
textArea.getSelectionStart(),
textArea.getSelectionEnd());
error=false;
}
}catch(UnsupportedFlavorException e){
}catch(IOException e){
}
if(error){
textArea.setBackground(Color.red);
textArea.setForeground(Color.white);
textArea.repaint();
textArea.setText(“ERROR:\nEither the clip-
board”+“is empty or the contents is not fl string.”);
}
}else if(“Copy”.equals(evt.getActionCommand
())) {
setContents();
}else if(“Cut”.equals(evt.getActionCommand
())){
setContents();
textArea.replaceRange("",textArea.getSelec-
tionStart(),textArea.getSelectionEnd());
}
}
void setContents(){
S=textArea.getSelectedText();
St ringSelection contents = new StringSelection
(s);
getToolkit().getSystemClipboard().setContents
(contents,this);
}
public void lostOwnership(Clipboard clipboard,
Transferable contents){
System.out.println(“lost ownership”);
}
public static void main(String args[]){
new java3();
}
}
[正确答案]第1处:setMenuBar(mb)
第2处:m.getItem(i).addActionListener(this)
第3处:String s=textArea.getSelectedText()
【解析】第1处设定菜单栏,setMenuBar参数应为菜单栏,此处this为Frame;第2处获得菜单项应使用gethem()方法。第3处变量S使用前未定义,从getSelectedText()可以看出,数据为文本域中选择的内容,故为String类型。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值