1、编写图形用户界面、集合与泛型及答案解析(总分:40.00,做题时间:90 分钟)一、选择题(总题数:12,分数:24.00)1.在 Java 中,实现用户界面功能的包是_。(分数:2.00)A.java.appletB.java.transactionC.java.utilD.java.awt2.阅读下面程序import javax.swing.JOptionPane;public class Comparisonpublic static void main (String args)String firstNumber,/用户输入第 1 个数据变量secondNumber,/用户输入第 2
2、 个数据变量result;/输出结果变量int number1,/用于比较的第 1 个数number2; /用于比较的第 2 个数/用户输入第 1 个数据的字符串firstNumber=JOptionPane.showInputDialob(“输入第 1 个整数:“);/用户输入第 2 个数据的字符串secondNumber=JOptionPane.showlnputDialog“输入第 2 个整数:“);/将字符串转换为整数类型number1=Integer.parseInt(firstNumber);number2=Integer.parseInt(secondNumber);/初始化结果
3、变量_;/比较两个数据if (number1=number2)result+=numberl+ “=“+number2;if (number1! =number2)result+=number1+“!=“+number2;if(number1number2)result=result+“n“+number1+“+number2;if (number1number2)result=result+ “/n“+number1+ “+number2;if(number1=number2)result=result+“/n“+number1+“=“+number2;if(number1=number2)
4、result=result+ “/n“+number1+“=“+number2;/显示结果JOptionPane.showMessageDialog(null,result,“比较结果“,JOptionPane.INFORMATION MESSAGE);System.exit(0);为使程序能正确运行并得到合理的输出结果,初始化结果变量语句(下画线处)应是_。(分数:2.00)A.result=“B.result=nullC.result=number1D.result=number23.Swing 的选项面板是_。(分数:2.00)A.JTabbedPaneB.JLayeredpaneC.J
5、ScrollPaneD.JSplitPane4.Swing 构件必须添加到 Swing 顶层容器相关的_。(分数:2.00)A.选项板上B.复选框内C.内容面板上D.分隔板上5.下列不属于 Swing 中构件的是_。(分数:2.00)A.JPanelB.JTableC.MenuD.JFrame6.Panel 类的默认布局管理器是_。(分数:2.00)A.BorderLayoutB.CardLayoutC.FlowLayoutD.GriBagLayout7.下列叙述中,错误的是_。(分数:2.00)A.JButton 类和标签类可显示图标和文本B.Button 类和标签类可显示图标和文本C.AW
6、T 构件能直接添加到顶层容器中D.Swing 构件不能直接填加到顶层容器中8.自定义表格类中的 model 部分应实现的接口是_。(分数:2.00)A.AbstractTableModelB.JTableC.TableModelD.TableModelable9.阅读下面程序import javax.swing.JOptionPang;public class BreakLabelTestpublic static void main (String args)String output=“ “;stop: for(int row=1; row=10; row+)for (int column
7、=1; column=5; column+)if(row=5)break stop;output+=*;output+=“/n“;output+= “/nLoops terminated normally“;JOptionPane.showMes sageDialog(Null, output,“用一个标志测试 break 语句“,JOptionPane.INFORMATION_MESSAGE);System.exit(0);程序运行结果是_。(分数:2.00)A.窗口中有 5 行*B.窗口中有 5 行*C.窗口中有 4 行*D.窗口中有 6 行*10.下列适配器类中不属于事件适配器类的是_。
8、(分数:2.00)A.MouseAdapterB.KeyAdapterC.ComponentAdapterD.FrameAdapter11.下列方法中,不属于 WindowListener 接口的是_。(分数:2.00)A.windowOpened()B.windowClosed()C.windowActivated()D.mouseDragged()12.下列事件监听器中,无法对 TextField 对象进行事件监听和处理的是_。(分数:2.00)A.ActionListenerB.FocuslistenerC.MouseMotionListenerD.ChangeListener二、填空题
9、(总题数:7,分数:16.00)13.AWT 中的布局管理器包括 BorderLayout、 1、CardLayout、GridBagLayout 和 GridLayout。(分数:2.00)填空项 1:_14.Swing 是由纯 Java 实现的轻量级构件,没有本地代码,不依赖 1 系统的支持。这是它与 AWT 构件的最大区别。(分数:2.00)填空项 1:_15.mouseDragged1 方法是 MouseMotionListener 接口中的抽象方法,该方法的参数是 2 类。(分数:2.00)填空项 1:_16.Swing 的事件处理机制包括 1、事件和事件监听者。(分数:2.00)填
10、空项 1:_17.Swing 的项层容器有:JApplet、JWindow、JDialog 和 1。(分数:2.00)填空项 1:_ListIntegerli = new ArrayListlnteger () ;li.put (new Integer (3) ;li (6) (new Integer (76);Interger i li. (7) (1) ;(分数:4.00)填空项 1:_填空项 1:_18.import java.util.*;public class LetterASortpublic static void main (String args )ArrayList St
11、ring strings = new ArrayListString () ;strings.add(“aAaA“) ;strings.add (“AaA“) ;strings.add(“aAa“) ;strings.add (“AAaa“) ;Collection.sort (strings) ;for(Stirng s:strings) System.out.print (s+“ “); 输出的结果是_.(分数:2.00)填空项 1:_编写图形用户界面、集合与泛型答案解析(总分:40.00,做题时间:90 分钟)一、选择题(总题数:12,分数:24.00)1.在 Java 中,实现用户界面
12、功能的包是_。(分数:2.00)A.java.appletB.java.transactionC.java.utilD.java.awt 解析:解析 javaapplet 包是为 Applet 提供执行需要的所有类,transaction 包是属于 javax 包而不是 java 包,其中 java.util 包提供使用程序类和集合类,java.awt 包是封装抽象窗口工具包,提供构建和管理用户图形界面功能。2.阅读下面程序import javax.swing.JOptionPane;public class Comparisonpublic static void main (String
13、args)String firstNumber,/用户输入第 1 个数据变量secondNumber,/用户输入第 2 个数据变量result;/输出结果变量int number1,/用于比较的第 1 个数number2; /用于比较的第 2 个数/用户输入第 1 个数据的字符串firstNumber=JOptionPane.showInputDialob(“输入第 1 个整数:“);/用户输入第 2 个数据的字符串secondNumber=JOptionPane.showlnputDialog“输入第 2 个整数:“);/将字符串转换为整数类型number1=Integer.parseInt
14、(firstNumber);number2=Integer.parseInt(secondNumber);/初始化结果变量_;/比较两个数据if (number1=number2)result+=numberl+ “=“+number2;if (number1! =number2)result+=number1+“!=“+number2;if(number1number2)result=result+“n“+number1+“+number2;if (number1number2)result=result+ “/n“+number1+ “+number2;if(number1=number2
15、)result=result+“/n“+number1+“=“+number2;if(number1=number2)result=result+ “/n“+number1+“=“+number2;/显示结果JOptionPane.showMessageDialog(null,result,“比较结果“,JOptionPane.INFORMATION MESSAGE);System.exit(0);为使程序能正确运行并得到合理的输出结果,初始化结果变量语句(下画线处)应是_。(分数:2.00)A.result=“ B.result=nullC.result=number1D.result=nu
16、mber2解析:解析 本程序是让用户输入两个数,然后比较这两个数,最后输出比较结果。根据题目中的提示,下画线处的语句所完成的操作就是初始化 result 变量。因为 result 是一个字符串类型的变量,初始化就是要给它赋一个字符常量。B 中 null 不是字符串类型的数据,选项 A 中的”是一个空串,是一个字符串常量。3.Swing 的选项面板是_。(分数:2.00)A.JTabbedPane B.JLayeredpaneC.JScrollPaneD.JSplitPane解析:解析 在 Swing 的容器面板中,选项面板是 JTabbedPane,每个选项下面都可以显示一个构件,提供一组可供
17、用户选择的带有标签或图标的选项。Swing 提供两种分层面板:JLayeredPane 和JDesktopPane。4.Swing 构件必须添加到 Swing 顶层容器相关的_。(分数:2.00)A.选项板上B.复选框内C.内容面板上 D.分隔板上解析:解析 Swing 构件不能直接添加到顶层容器中,它必须添加到一个与 Swing 顶层容器相关联的内容面板(ContentPane)上。内容面板是项层容器包含的一个普通容器,它是一个轻量级构件。5.下列不属于 Swing 中构件的是_。(分数:2.00)A.JPanelB.JTableC.Menu D.JFrame解析:解析 Swing 中的大多
18、数构件名称都在 AWT 构件名前加了一个“J”。因此,很容易判断 C 项不是Swing 中的构件。JPanel 是 Swing 的中间容器:JTable 中可编辑信息的构件;JFrame 是 Swing 的顶层容器。6.Panel 类的默认布局管理器是_。(分数:2.00)A.BorderLayoutB.CardLayoutC.FlowLayout D.GriBagLayout解析:解析 FlowLayout 是 Panel 和 Applet 的默认布局管理器。BorderLayout 是 Window、Frame 和Dialog 的默认布局管理器。所以正确答案是 C。7.下列叙述中,错误的是
19、_。(分数:2.00)A.JButton 类和标签类可显示图标和文本B.Button 类和标签类可显示图标和文本 C.AWT 构件能直接添加到顶层容器中D.Swing 构件不能直接填加到顶层容器中解析:解析 按钮 JButton 是一个常用构件,它可以同时显示文字、图标和图片,这是 JButton 与 AWT中的 Button 的区别,即 Button 类和标签类不可显示图标和文本,所以 B 项说法错误。8.自定义表格类中的 model 部分应实现的接口是_。(分数:2.00)A.AbstractTableModelB.JTableC.TableModel D.TableModelable解析
20、:解析 表格是 Swing 新增加的构件,主要功能是把数据以二维表格的形式显示出来。AbstractTableModel 类的对象负责表格大小的确定、内容的填写、赋值、表格单元更新的检测等一切跟表格内容有关的属性及其操作。JTable 类生成的对象以 TableModel 对象中的数据以表格形式显示出来,所以应实现的接口是 TableModel。9.阅读下面程序import javax.swing.JOptionPang;public class BreakLabelTestpublic static void main (String args)String output=“ “;stop:
21、 for(int row=1; row=10; row+)for (int column=1; column=5; column+)if(row=5)break stop;output+=*;output+=“/n“;output+= “/nLoops terminated normally“;JOptionPane.showMes sageDialog(Null, output,“用一个标志测试 break 语句“,JOptionPane.INFORMATION_MESSAGE);System.exit(0);程序运行结果是_。(分数:2.00)A.窗口中有 5 行*B.窗口中有 5 行*C
22、.窗口中有 4 行* D.窗口中有 6 行*解析:解析 本程序的功能就是向屏幕输出“*”。题目中的程序主体是一个二重 for 循环。内层循环在字符串 output 后面连接 5 个“*”和 1 个换行符“/n”,所以窗口上每一行都有 5 个“*”。内层 for 循环中,当 row 等于 5 时,执行 break stop 语句,就跳出了 stop 所指定的代码块。所以最后应该输出 4 行。C 项是正确的。10.下列适配器类中不属于事件适配器类的是_。(分数:2.00)A.MouseAdapterB.KeyAdapterC.ComponentAdapterD.FrameAdapter 解析:解析
23、 事件适配器包括以下类:ComponentAdapter,构件适配器;ContainerAdapter,容器适配器;FocusAdapter,焦点适配器;KeyAdapter,键盘适配器;MouseAdapter,鼠标适配器:MouseMotionAdapter,鼠标运行适配器;WindowAdapter,窗口适配器。所以 FrameAdapter 不属于适配器。11.下列方法中,不属于 WindowListener 接口的是_。(分数:2.00)A.windowOpened()B.windowClosed()C.windowActivated()D.mouseDragged() 解析:解析
24、WindowListener 接口包含的方法是:windowClosing(WindowEvent)、windowOpened(WindowEvent)、windowIconified(WindowEvent)、windowDeiconified(WindowEvent)、windowClosed(WindowEvent),windowActivated(WindowEvent)、windowDeactivated(WindowEvent).因此不属于 WindowListener 接口的方法是 D。小技巧:在 AWT 中,接口的命名是与事件相对应的,比如 WindowEvent 事件所对应的
25、接口就是WindowListener,而 MouseEvent 事件所对应的接口就是 MouseListener。同时,接口中的方法的命名也是与事件相对应的,比如 WindowListenter 接口中包含的方法的名称都是以 Window 开头。所以很容易看出 D 选项是本题答案。12.下列事件监听器中,无法对 TextField 对象进行事件监听和处理的是_。(分数:2.00)A.ActionListenerB.FocuslistenerC.MouseMotionListenerD.ChangeListener 解析:解析 在单行文本输入区(TextField)构件上可能发生的事件包括:Fo
26、cusListener 焦点事件,对应的事件监听器是 FocusListener; ActionEvent 动作事件,对应的监听器是 ActionListener; MouseEvent 鼠标事件,对应的监听器是 MouseMotionListener。不包括 ChangeListener 这样的监听器。所以,本题的正确答案是 D。二、填空题(总题数:7,分数:16.00)13.AWT 中的布局管理器包括 BorderLayout、 1、CardLayout、GridBagLayout 和 GridLayout。(分数:2.00)填空项 1:_ (正确答案:FlowLayout)解析:解析 布
27、局管理器的相关类主要包括:FlowLayout、BorderLayout、GridLayout、CardLayout、GridBagLayout 等。14.Swing 是由纯 Java 实现的轻量级构件,没有本地代码,不依赖 1 系统的支持。这是它与 AWT 构件的最大区别。(分数:2.00)填空项 1:_ (正确答案:操作)解析:解析 Swing 是纯 Java 实现的轻量级构件,没有本地代码,不依赖操作系统的支持,这是它与AWT 构件的最大区别。因此,Swing 可以使得 Java 程序在一个平台上运行时能够有不同的外观,比如,程序在 Windows 平台上运行时可以让程序界面显现出 UN
28、IX 系统的 Motif 风格。15.mouseDragged1 方法是 MouseMotionListener 接口中的抽象方法,该方法的参数是 2 类。(分数:2.00)填空项 1:_ (正确答案:MouseEvent)解析:解析 mouseDragged-|_|-方法是 MouseMotionListener 接口中的抽象方法,其声明原型为:mouseDragged(MouseEvent)。显然,该方法的参数类型为 MouseEvent。16.Swing 的事件处理机制包括 1、事件和事件监听者。(分数:2.00)填空项 1:_ (正确答案:事件源)解析:解析 Swing 的事件处理机制
29、继续沿用了 AWT 的事件处理机制,基本的事件处理需要java.awt.event 包中的类,但 java.swing.event 包中增加了一些新的事件及其监听接口。事件处理机制中仍然包含 3 个角色:事件源、事件和事件处理者(事件监听程序)。事件源就是 Swing 的各种构件,与之对应的就是事件监听器接口。17.Swing 的项层容器有:JApplet、JWindow、JDialog 和 1。(分数:2.00)填空项 1:_ (正确答案:JFrame)解析:解析 从功能上分,Swing 构件分为:顶层容器:JFrame、JApplet、JDialog 和 JWindow。中间容器:JPan
30、e1、JscrollPane、JsplitPane、JToolBar。特殊容器:JinternalFrame、JlayeredPane、JrootPane 等,在 GUI 上起特殊作用的中间层。基本控件:JButton、JcomboBox、JList 等,实现人机交互的构件。向用户显示不可编辑信息的构件:JLabe1、JProgressBar 等。向用户显示能被编辑的格式化信息的构件:JcolorChooser、JFileChooser 等。ListIntegerli = new ArrayListlnteger () ;li.put (new Integer (3) ;li (6) (new
31、 Integer (76);Interger i li. (7) (1) ;(分数:4.00)填空项 1:_ (正确答案:put)解析:填空项 1:_ (正确答案:get)解析:解析 本程序创建了一个内容为整型的 List,List 的插入新元素为 put()方法,获取某个元素为get(int index)方法。因此第一个空应填 put,第二个空应填 get。18.import java.util.*;public class LetterASortpublic static void main (String args )ArrayList String strings = new Arra
32、yListString () ;strings.add(“aAaA“) ;strings.add (“AaA“) ;strings.add(“aAa“) ;strings.add (“AAaa“) ;Collection.sort (strings) ;for(Stirng s:strings) System.out.print (s+“ “); 输出的结果是_.(分数:2.00)填空项 1:_ (正确答案:AaaaAaAaAaaAaA)解析:解析 本程序创建了一个内容为 String 类型的 ArrayList,连续向其中添加了 4 个元素,然后执行升序排序。因此输出升序排序后的结果,按 ASC码大小从小到大的排序为 AAaa,AaA,aAa,aAaA。所以输出为 AaaaAaAaAaaAaA。