全国计算机等级考试二级Java语言程序设计试题及答案

上传人:桂梅 文档编号:152301647 上传时间:2022-09-15 格式:DOCX 页数:42 大小:75.35KB
收藏 版权申诉 举报 下载
全国计算机等级考试二级Java语言程序设计试题及答案_第1页
第1页 / 共42页
全国计算机等级考试二级Java语言程序设计试题及答案_第2页
第2页 / 共42页
全国计算机等级考试二级Java语言程序设计试题及答案_第3页
第3页 / 共42页
资源描述:

《全国计算机等级考试二级Java语言程序设计试题及答案》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级Java语言程序设计试题及答案(42页珍藏版)》请在装配图网上搜索。

1、全国计算机等级考试二级语言程序设计试题及答案Java(五)一、选择题(每小题1分,共40小题,共40分)1 .常米用的两种存储结构是()。A. 顺序存储结构和链式存储结构B. 散列方法和索引方式C. 链表存储结构和数组D. 线性存储结构和非线性存储结构Ao【解析】线性表的存储结构有顺序存储结构和 链式存储结构。2. 在深度为5的满二叉树中,叶子结点的个 数为()。A. 32B. 31C. 16D. 15Co【解析】根据满二叉树的定义,一棵深度为k且有2k-1个结点的二叉树为满二叉树。满二叉树 的叶子结点为最后一层的结点数。根据满二叉树 的性质,在满二叉树的第i层上至多有2i-1个结 点。因此深

2、度为5的满二叉树的叶子结点数为25-仁16个。3. 下列叙述中错误的是()。A. 线性表是由n个元素组成的一个有限序 列B. 线性表是一种线性结构C. 线性表的所有结点有且仅有一个前件和 后件D. 线性表可以是空表Co【解析】线性表是一种线性结构,由 n(n 0) 个兀素组成,所以线性表可以是空表。但是在线 性表中,第一个结点没有前驱,最后一个结点没 有后继,其他结点有且只有一个前驱和后继, 所 以选项C是错误的。4. 数据库技术的根本目标是要解决数据的()。A. 存储问题B. 共享问题C. 安全问题D. 保护问题B。【解析】在数据库系统中,需要对数据进行集 合、统一的管理,以达到被多个应用程

3、序共享的 目标。5 在设计程序时,应采纳的原则之一是()。A. 不限制goto语句的使用B. 减少或取消注解行C. 程序越短越好D. 程序结构应有助于读者理解Do【解析】程序设计中,程序不要求长度,以结 构清晰、易于理解为标准,程序员可以添加注释 来助于理解,同时要尽量少用 goto语句,否则 会破坏程序的结构。6.结构化程序设计的核心和基础是()A. 结构化分析方法B. 结构化设计方法C. 结构化设计理论D结构化编程方法Co【解析】结构化程序设计的核心和基础是结构 化设计理论,其中包括:结构化分析方法、结构 化设计方法和结构化编程方法。7 对下列二叉树进行中序遍历的结果是 ()oFjAl|S

4、 E 31A. ACBDFEGB. ACBDFGEC. ABDCGEF D FCADBEGAo【解析】二叉树的遍历有3种:前序、中序和 后序。中序遍历首先遍历左子树或左子结点,然 后访问根结点,最后遍历右子树或右子结点。分 析本题二叉树,对其进行中序遍历,结果为ACBDFEG&软件设计中模块划分应遵循的准则是()。A. 低内聚低耦合B. 高内聚低耦合C. 低内聚高耦合D. 高内聚高耦合Bo【解析】耦合性和内聚性是模块独立性的两个 定性标准,软件设计应该遵循高内聚低耦合的准 则。9 算法的有穷性是指()。A. 算法程序的运行时间是有限的B. 算法程序所处理的数据量是有限的C. 算法程序的长度是有

5、限的D. 算法只能被有限的用户使用Ao【解析】算法的有穷性是指算法必须在执行有 限的步骤后终止。10. 有3个关系R、S和T如下:由关系R和S通过运算得到关系T,则所用的运算为()。A. 并B. 自然连接C. 笛卡儿积D. 交Do【解析】关系R与S经过交运算后所得到的 关系是由那些既在R内又在S内的有序组组成 的。记作Rn So11. 破坏死锁的4个必要条件之一就可以预防 死锁。假如规定一个进程在请求新资源之前首先 释放已占有的资源则是破坏了 () 条件。A. 互斥使用B. 部分分配C. 不可剥夺D. 环路等待B。【解析】若一个进程请求新资源之前首先释放 已占有的资源,这破坏了部分分配条件。1

6、2. 设有字符序列(Q, H, C, 丫,P,A,M S, R, D, F,X),则新序列(F,H, C, D, P,A, M Q, R, S, Y, X)是下列() 排序算法一趟 扫描的结果。A. 起泡排序B. 初始步长为4的希尔排序C. 二路归并排序D. 以第一个元素为分界元素的快速排序Do【解析】根据快速排序的算法,新序列(F , H,C, D,P,A, MQR,s,Y,X)为字符序列(Q,H, C,Y,P, A,M,s,R,D,F, x)经过快速排序的算法第一趟扫描后的结果。13. 下列与算法有关的叙述中,不正确的是 ()。A. 运算是数据结构的一个重要方面,运算 的实现步骤用算法来描

7、述B. 算法是精确定义的一系列规则,它指出 怎样从给定的输入信息经过有限步骤产生所求的输出信息C. 算法的设计采用由粗到细,由抽象到具 体的逐步求精的方法D. 对于算法的分析,指的是分析算法运行 所要占用的机器时间,即算法的时间代价Do【解析】算法是一系列解决问题的清晰指令, 也就是说,能够对一定规范的输入,在有限时间 内获得所要求的输出。算法常常含有重复的步骤 和一些比较或逻辑判断。如果一个算法有缺陷, 或不适合于某个问题,执行这个算法将不会解决 这个问题。不同的算法可能用不同的时间、空间 或效率来完成同样的任务。一个算法的优劣可以 用空间复杂度与时间复杂度来衡量,也就是算法 分析,因此选项

8、D错误。算法设计一般采用由粗 到细、由抽象到具体的初步求精的方法。14. 下列关于数据的存储结构的叙述中, 正 确的是()。A. 数据的存储结构是数据间关系的抽象描 述B. 数据的存储结构是逻辑结构在计算机存储器中的实现C. 数据的存储结构分为线性结构和非线性结构D. 数据的存储结构对数据的具体实现没有影响B。【解析】数据的存储结构是逻辑结构在计算机 存储器中的实现。为了全面表示一个逻辑结构, 它在存储器中的影响包括数据元素自身值的表 示和数据元素的表示两方面。15. 设有一个已按各元素的值排好序的顺序 表(长度大于2),现分别用顺序查找法和二分查 找法查找与给定值k相等的元素,比较的次数分

9、别是s和b,在查找不成功情况下s和b的关系 是()。D. s=bBo【解析】顺序查找的基本思想是:从表的一端 开始,顺序扫描线性表,依次将扫描到结点的关 键字和给定值k进行比较,若当前扫描到结点的 关键字与k相等,则查找成功;若扫描结束后, 仍未找到关键字等于k的结点,则查找失败。二 分查找法是一种效率较高的查找方法, 要求线性 表是有序表。基本思想是:首先将待查的k值和 有序表R0Rn-1的中间位置mid上的结点 的关键字进行比较,若相等,则查找完成;否则, 若Rmid . keyk,则说明待查找的结点只可能 在左子表R0Rmid-1中,我们只需在左子 表中继续进行折半查找,若Rmid .

10、key16. 下列不属于虚拟机执行过程的特点的是()。A. 多线程B. 动态连接C. 异常处理D. 代码安全检查Do【解析】本题考查虚拟机执行过程的特点。Java 虚拟机是编译器生成的字节码,不用考虑具体的 硬件环境,实现一次编写,随处运行,实现其可 移植性。虚拟机执行过程的特点有:多线程、动 态连接、异常处理。代码安全检查是 Java 语言 的一个突出特点,但不属于虚拟机执行过程特 点。17下列说法中,正确的一项是 ( ) 。 AJava 语言是以类为程序的基本单位的 BJava 语言是不分大小写的C. 多行注释语句必须以/开始D. 在Java语言中,类的源文件名和该类名 可以不相同A。【解

11、析】本题考查考生对Java语言概念的理 解,属于考试重点内容, 历次考试都有相关内容, 应该理解这些基本概念。 Java 语言是分大小写 的,这一点在初学 Java 时需要特别注意,这一 点与C语言有所不同,B选项错误。以/开始 的应该是单行的注释语句,因此选项 C 错误。 Java中有三类注释语句:文档注释/ */, 被 javadoc 处理,可以建立类的一个外部说明性 文件;C语言注释风格/ */,用于去掉当前 不再使用但仍想保留的代码等;单行注释/, 格式上要求注释符后必须紧跟一个空格, 然 后才是注释信患。 Java 程序源文件名必须和 public 类名相同,否则编译出错,因此选项

12、D 错误。只有选项 A 说法正确。18下列关于实型变量书写正确的是 ( ) 。AE3B2e03C12e3D12E03Co【解析】本题考查实型变量科学计算格式的书 写。在科学计算格式中,e或E是指数符,要求 在e/ E之前必须有数字,选项 A错误。同时还 要求在 eE 之后必须是整数,选项 B 和选项 D 错误。虽然题目非常简单,但是不容易正确回答。正确答案为选项 Co19下列与其他选项不相等的是 () oA15B0xFC015D0XFCo【解析】本题考查Java语言中的进制换算。 考生首先要清楚各种进制的表示方法, 整型常量 有 3 种书写格式:十进制整数,如 156,-230 , 345;八

13、进制整数:以 0 开头,如 012 表示十进 制的 l0 ;十六进制整数:以 0x 或 0X 开头,如 0X123表示十进制数291 o选项A是十进制的15, 选项B和选项D都是十六进制中的F相当于十进 制的 15,选项 C 为八进制,以 0 开头,此处 Ol5 相当于十进制的13,与其他选项不同。20. 设a=8,则表达式a1的值是()。A1B. 2C. 3D. 4Do【解析】本题考查考生对位运算符中无符号右 移运算符的掌握。无符号右移运算符 ,也叫 逻辑右移,用于将一个数的各二进制位全部无符号右移若干位,与运算符不同的是左补0,而 则是最高位移入原来高位的值。在本题中,8的 二进制表示是1

14、000,右移一位后变成了 0100, 对应的十进制数是4。可见,正确答案为选项Do21. 在Java中,所有类的根类是()。A. java . lang . ObjectB. java . lang . ClassC. java . lang . StringD. java . lang . SystemAo【解析】本题考查考生对 Java类的掌握。在Java中java . lang包封装着所有编程应用的基 本类。Object是所有类的根,它所包含的属性 和方法被所有类集成;Class类是由编译器自动 生成对象的一个特殊类,它伴随每个类;Strin9 是字符串常量的类;System类是一个fi

15、nal类, 所有的方法都用类变量来调用,即对System类不可能实例化,主要提供了标准输入/输出和系 统环境信息的访问、设置.22 .执行下面程序段后,2值为()int x=1, y=2, z=3;z=z/(float)(x/ y):A. 编译无法通过B. 6C. 3 D. 2Ao【解析】本题考查Java的运算和类型转换。题目中变量x、y、z是int类型,由于括号的优 先级要高,所以语句 (float)(x / y)的结果为 0. 0,分母已经成为0,编译肯定无法通过。另 外,由于2是int型,不能将float型强制转化 为int型。23. int类型的取值范围为()。A. -216 216-

16、1B. -231 231-1C. -232 232-1D. -264 264-1B。【解析】本题考查int类型的取值范围。int 类型是最常用的整数类型,存储时占 32位bit , 能表示的范围是-2的31次方至2的31次方-1, 选项B正确。而short类型在存储时占l6位bit , 能表示的范围是-2的16次方至2的16次方-1。 long类型存储时占64位bit,数据范围是-2的 64次方至2的64次方-1。正确答案为选项B。24. 下列说法中,()是正确的。A. 子类拥有的成员数目大于等于父类拥有 的成员数目B. 父类代表的对象范围比子类广C. 子类要调用父类的方法,必须使用super

17、 关键字D. 个Java类可以有多个父类Bo【解析】本题考查对子类与父类关系的理解。 对一个类的继承也就是构建了一个子类,子类继 承了父类的方法和状态,同时还可以向新类中增 添新的方法和状态。重点掌握两点:子类方法的 访问权限比父类访问权限高,因此父类不能替代 子类,但子类能够代替父类,子类方法不能产生 比父类更多的异常。子类拥有的成员数目小于等 于父类拥有的成员数目,选项A说法错误;父类 代表的对象范围比子类广,选项B说法正确;子 类要调用父类的方法,可以使用 super关键字, 也可以将父类的方法进行重写,选项 C说法错 误。在Java中一个类只能有一个父类,选项 D 说法错误。25 .执

18、行下列程序之后,变量 n的值为()。public class Exampublic static void main(Stringargs)int y=2 ;int z=3 :int n=4 :n=n+-y*z / n;System. out. println(n);A. 3 B . -lC-12 D . -3Ao【解析】本题考查Java中表达式的运算。程 序段main()方法中的前3行是基本的赋值语句, 第4行是算术运算语句,该语句执行的过程是: 首先是对丫取负值,得到-2,然后乘以2得到-6 ,再除以n得到-1,最后和n做加法得到3,从而 根据赋值运算将3赋值给变量n。26 .在Java中

19、能实现多重继承效果的方式 是()。A. 内部类B. 适配器C. 接口D. 同步Co【解析】本题考查Java中多重继承的概念。 首先要区分选项中各个概念。内部类是在一个类 中的内部嵌套定义的类,主要用来生成事件适配 器。适配器(Adapter)定义一个包装类,包装有 不兼容接口的对象。这个包装类指的就是适配 器,它包装的对象就是适配者(Adaptee),适配 器提供客户类需要的接口。接口是一种只含有抽 象方法或常量的一种特殊的抽象类,因为接口不 包括任何实现,所以与存储空间没有任何关系, 将多个接口合并,即多重继承就可以很容易实 现,选项C正确。同步主要用在多线程程序设计 中。27. char类

20、型的取值范围是()A. 2的-7次方2的7次方减1B. O2的16次方减1C负2的15次方2的15次方减1D. C2的8次方减1B。【解析】本题考查Java中数据类型的取值范 围。应该掌握常用的数据类型的取值范围,char 类型在内存中占16位,取值范围是065535也 就是C2的16次方减1,选项B正确。28 能够支持javadoc命令的注释语句是 ()。A. /* B. /* */C. IID /*/Do【解析】本题考查Java中的注释语句。注释 是程序设计的重要组成部分,应熟练掌握。Java 中有三类注释语句:文档注释/ */,被javadoc处理,可以建立类的一个外部说明性文件,所以本

21、题正确答案是 选项D; C语言注释风格/ */,用于去掉当 前不再使用但仍想保留的代码等;单行注释/ /,格式上要求注释符/后必须紧跟一个空 格,然后才是注释信息。29. 十进制数16的十六进制表示格式是()。A. 0x10B. 0x16C. 0xAD. 016Ao【解析】本题考查Java语言中的进制换算。 首先要清楚各种进制的表示方法。整型常量有3种书写格式:十进制整数,如 156, -230 , 345; 八进制整数,以0开头,如012表示十进制的10 ;十六进制整数,以0x或OX开头,如0X123 表示十进制数291。十进制数16相当于十六进 制的10,所以选项A正确。30. int 型

22、 public 成员变量 MAX_LENGTH 该值保持为常数100,则定义这个变量的语句是 ()。A. public int MAX LENGTH=100B. final int MAX LENGTH=100C. public const int MAX_LENGTH=100D. public final int MAX_LENGTH=100Do【解析】本题考查Java中变量的声明。选项 A虽然按照题目要求定义了一个变量,但没有满 足保持为常数的要求,该变量可以被改变;选项 B没有满足题目要求的public成员变量;选项C 与C语言混淆,con st是C语言用来定义常值变 量的关键字;Jav

23、a中定义常值变量使用的是 final属性,说明该值赋值以后永不改变,所以 选项D为正确答案。31. Java对I / 0访问所提供的同步处理机制是()。A. 字节流B. 过滤流C. 字符流D压缩文件流Bo【解析】本题考查Java I /O流中的过滤流。 过滤流是Java对I / O访问提供的同步处理机 制,保证某时刻只有一个线程访问一个I/ 0流。 过滤 流是 Filterl n putStream和FiherOutputStream。因此,本题的正确答案是 选项Bo32. 请阅读下面程序public class ThreadTestpublic static void main (Stri

24、ng args)throws Ex-cepti onint i=0;Hello t=new Hello() ;while(true)System . Out .printin (GoodMorning+i+):if(i= =2&t. isAlive()System. out. println(Mainwaiting forHelio!) ;t . join();/等待t运行结束if(i= =5)break ; class Hello exte nds Threadint l ;public void run()while(true)(System. Out. printin(HellO+i+)

25、;if(i= =5)break ;)为使该程序正确执行,下画线处的语句应是()。A. t . sleep()B. t . yield()C. t .in terrupt()D. t . start()Do【解析】程序中通过继承 Thread类来创建线 程,而Java中新创建的线程不会自动运行,必 须调用线程的start()方法,才能运行该线程。33. 下列叙述中,错误的是()。A. Jbutton类和标签类可显示图标和文本B. Button类和标签类可显示图标和文本C. AWT勾件能直接添加到顶层容器中D. Swing构件不能直接添加到顶层容器中B。【解析】Swing的按钮上还可以同时显示文字

26、 和图标,甚至只有图标都是可以的,这样就构成 了图形按钮。而AwT中的Butt on类不能显示图 标,只能显示文本。34. 下列叙述中,错误的是()。A. Applet的默认布局管理器是FlowLayoutB. JApplet中增加构件是加到JApplet的内容面板上,不是直接加到 JApplet中C. JApplet的内容面板的默认布局管理器 是 Border-LayoutD. JApplet的内容面板的默认布局管理器 是 FlowLay-outDo【解析】FlowLayout布局管理器是Panel类 和Applet类默认的布局管理器。向JApplet中 增加构件,是把构件添加到Japple

27、t的内容面板 中,而不是直接添加到JApplet中。JApplet的 内容面板的默认布局管理器是BorderLayout,而Applet默认的布局管理器是 FlowLayout。35. 下列叙述中,错误的是()。A. Java中,方法的重载是指多个方法可以 共享同一个名字B. Java中,用abstract 装饰的类称为抽 象类,它不能实例化C. Java中,接口是不包含成员变量和方法 实现的抽象类D. Java中,构造方法可以有返回值Do【解析】构造方法是一种特殊的方法,是为对 象初始化操作编写的方法,用它来定义对象的初 始状态。Java中的每个类都有构造方法,它也 是由方法名、参数和方法体

28、组成的。构造方法的 名字必须与类名相同,并且构造方法不返回任何数据。36 .要表示表格的数据,需要继承类 ()。A. AbstraceTableModelB. TableModelC. JTableD. TableModelableAo【解析】表格是Swing新增加的构件,主 要功能是把数据以二维表格的形式显示出来。使 用表格,依据 M-V-C的思想,最好生成一个 MyTableModel类型的对象来表示数据,这个类 是从AbstractTableModel 类继承来的。public static void main(String args)int count ,xPos=25;for(cou

29、nt=1; count=10 ; count+)if(co unt= =5)Break;system . Out. println(count);xPos+=10: A. 1 2 3 4B. 1 3 4C. 编译错误D. 以上都不正确A。【解析】该程序经过编译、运行后,在屏幕上 显示:I 2 3 4。public class Hello 中 Hello为 类名, public staticvoid main(String args)有关参数的解释如下:public表示该方 法可以被任意代码所调用,包括Java解释器;static告诉编译器,main()方法是一个类方法, 可以通过类名直接调用,

30、调用时不需要该类的实 例对象;void表示main()方法没有返回值,这 是非常重要的,因为Java类型检查非常严格,包括检查这些方法返回值的类型是否与声明的 一致;Stri ngargs声明一个字符串类型的数组,它是命令行传递给main()方法的参数,参数在命令行中出现在类名称后面。包含main()方法的类(Hello 为包含main()方法的类名)名 称必须与其文件名相同,也就是说,其文件名必 须为Hello .java。经过编译,在当前文件夹 下将出现一个Hello . class文件,这就是编译 后的字节码文件。在程序段最后有两个大括号, 分别说明结束main()方法和Hello类。在

31、本程 序中由于有count= =5 这个条件判断,因此当 count= =5时,程序结束,输出为1 2 3 4。38. 在Applet生命周期中,下面方法中, 在装载Applet时被调用的是()。A. stop()B. init()C. start()D. destroy。Bo【解析】在Java Applet的生命周期中,共有 4 种状态和 4 个方法:init() 、start() 、stop()和destroy。在 Applet装载时,由浏览器或appletviewer 调用 init()方法,丿通知该Applet已被加载到浏览器中,使Applet执行一些基本 初始化。39. JDBC是面

32、向() 的。A. 过程B. 对象C. 应用D. 用户B。【解析】JDBC中定义了一组标准的应用程序 接口 (API),这些API是一种面向对象的封装和 重新设计的接口,使得用户能够编写不依赖于数 据库厂商的数据库应用程序。40. J2SDK的下载中,下列() 可以进 入J2SE下载页面。A. 进入 http : / java . sum. comB. 单击左侧Download链接C. 单击页面中的 Java 2 Platform ,Standard Editio n 链接D 单击页面中的J2SE I . 4. 2链接Co【解析】J2SDK的下载按下列步骤进行操作: 进入 http : /jav

33、a . sun. com; 单击左 侧Download链接,进入下载页面;单击页面 中的 Java 2 Platform , StandardEdition 链接, 进入J2SE下载页面;单击页面中J2SEI .4.2 链接,进入 J2SEl . 4. 2下载页面;找到 Download J2SE v1 . 4.2_02 栏目,在其下找到 Win dows offli ne In stallatio n类别,其右有两个下载选项,一个是 JRE 个是SDK,单 击 SDK选项下面的 download , 进入 J2SDK-1_4_2_02-win-dows-i586 . exe 文件的下 载页面

34、;选择accept,接受SUN的协议; 单 击 页 面 中 的 Downloadj2sdk-1_4_2_02-win-dows . i586 . P .exe下载链接,自动进行浏览器下载,也可使 用下载工具进行下载。二、基本操作题(共18分)本题定义了一个方法add(),用于求两个整 形数的和。方法中有两个整形参数 a和b,方法 体中计算a和b的和sum,并将结果返回。程序 中调用add()方法求整数24和34的和,并将结 果打印输出。public class javalpublic static void main(Stringargs)int a=24 , b=34;System. out

35、. println(add(a, b);public static int add( )sum a+b;第1处:int a , int b第2处:int sum第3处:return sum【解析】第1处是add方法的两个整型的形参;第2处是声明一个整型的变量 sum第3处 是求得sum值后,返回sum。三、简单应用题(共24分)本题中,主窗口有一个按钮“显示 Dial09 ”,单击该按钮后显示一个对话框,对话 框的标题是“ Dial09 ”,其上有一个文字标签 欢迎学习Java .”,此时仍允许对原来窗口 进行操作,当关闭新生成的对话框时退出程序。import java . awt. * ;i

36、mport java . awt. eve nt . * ;import javax . swing . * ;public class java2 exte nds Frame impleme nts Acti on Listen erpublic static void main(String args) java2 f=new java2(java2) ;Panel pan=new Pan el();super(str);public void in it() addWi ndowListe ner(newWin dowAdapter()public void wi ndowClosi

37、ng(Wi ndowEve nte)System. exit(0););setSize(200 , 200);setLayout (new FlowLayout();but=new Button(显示 Dialog); add(but);but. addActionListener(this) ;dig=new Dialog(this,Dialog,);dig . setSize(100 , 50);digaddWi ndowListe ner(newWin dowAdapter()public void wi ndowClosi ng(Wi ndowEve nte);dig . add(Ce

38、nter , newLabel(欢迎学习 Java. );setVisible(true) ;publicvoidactio nPerformed(Actio nEve nt e) dig . setVisible(true) ;private Dialog dig;private Butt on but;第 1 处:flash第 2 处:System. exit(0)【解析】第1处是作为Dialog对话框的参 数,第2处表示系统关闭退出整个应用程序, 参 数0表示正常关闭。四、综合应用题(共18分)本题的功能是监听鼠标的拖曳操作。窗口中 有一个列表框,列表框中列出了当前目录的所有 文件,鼠标

39、选中一个或多个文件后拖曳出窗口, 此操作的功能是将拖曳的文件复制一份在拖曳 的目的目录下。import java . awt. * ;import java . awt. datatransfer . * ;import java . awt. dnd. * ;import java . awt. eve nt . * ;import java . io . *;import java . util . *;import javax . swing . * ;public class java3public static void main(Stri ngargs)JFrame frame=n

40、ew DragSourceFrame();frame . setDefauhCloseOperation(JFrame . EX IT_0N_CLoSE)frame. show();class DragSoureeFrame exte nds JFramepublic DragSourceFrame()setTitle(java3) ;setSize(WIDTH , HEIGHT;Container conten tPa ne=getC onten tPa ne();Filef=newFile( . ) . getabsoluteFile() ;Filefiles=f . listFiles(

41、) ;model=new DefaultListModel() ;for(int i=0; itrymodel. addElement(filesi . getCanonicalF ile();catch(IOException excepti on)JOptionPane showMessageDialog(this , exeep-tion) ;fileList=new JList(model) ; contentPane add(new JScrollPane(fileList) ,BorderLayout CENTER;) contentPane add(new JLabel( 从列表

42、中 拖曳出文件) ,BorderLayout NoRTH;)DragSource dragSource=DragSource getDefauh-DragSource() ;dragSource createDefaultDragGestureRecog nizer(fileList ,DnDConstants ACTION_COPY_0R_ MOV,E newDragGestureListener()public void dragGestureRecognized(DragGestureEvent event)draggedValues=fileList getSelectedValues

43、 () ;Transferable transferable=new FiteListTransferable(draggedValues) ; evenr startDrag(null ,transferable , new FileListDragSourceListener() ; ) ;private classFileListDragSourceListener implements DragSourceAdapterpublic void dragDropEnd(DragSourceDropEvent event)if(event getDropSuccess()int actio

44、n=event getDropAction() ;if(action=for(int i=0=DnDConstantsACTl0NMOVE);imodelremoveElement(draggedValuesi)private JList fileList ;private DefauhListModel model ; private ObjectdraggedValues ; private static final int WIDTH=300 private static final int HEIGHT=200 class FileListTransferable implements

45、 TransferablepublicFileListTransferable(Objectfiles)fileList=newArrayList(Arrays asList(files);publicDataFlavorgetTransferDataFlavors()return flavors;public boolean isDataFlavorSupported(DataFlavorflavor)return Arrays. asList(flavors), contains(flavor) ;public Object getTransferData(DataFlavor flavo

46、r)throws UnsupportedFlavorException if(flavor, equals(DataFlavor, javaFileListFlavor) )return fileLis t;else if(flavor, equals(DataFlavor, stri ngFlavor)return fileList, toStri ng();elsethrownewUn supportedFlavorExceptio n(flavor);private static DataFlavor flavors =DataFlavor. j avaFileListFlavor,Da

47、taFlavor. stri ngFlavor;private java. util. List fileLis t;第 1 处: File f new File( . ) . getAbsoluteFile()第 2 处:int i=0; i第 3 处: private class FileListDragSoureeListe ner extends DragSourceAdapter【解析】第1处是通过绝对路径创建一个File 对象 f ;第 2 处是 files 中 f 文件所在目录 下的所有文件名列表,此处就是遍历这些文件 名 ; 第 3 处 是 定 义 了 一 个 FileListDragSoureeListener 类继承用于接收 拖动源事件的抽象适配器类 DragSoureeAdapter 。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!