1、国家二级(JAVA)机试-试卷 38 及答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_2.下面程序创建一个长宽均为 100 的 Frame 窗口,并且窗口的背景颜色是蓝色。请将程序补充完整。 注意:不改动程序结构,不得增行或删行。 import java.awt .*; public class ex1 extends Frame public static void main(String args) ex1 t=new ex1(); t.setSize(100,100); _ t.setVisible(t
2、rue); (分数:2.00)_二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_4.在程序中,使用适当的布局管理器,在 Frame 框的 North 位置添加一句提示信息,在 South 位置添加一个单行文本框,在这个文本框中输入的内容将会显示在 Center 位置。运行结果如下图所示。 注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 (分数:2.00)_三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_6.本程序的功能是监听对于菜单项和工具条按钮的操作。主窗口中有菜单、工具条和一个文字标签,菜单
3、中有“文件”项,“文件”菜单中包括菜单项“新建”、“保存”、“打印”、“页面设置”和“退出”,工具条上包括按钮“新建”、“保存”、“打印”、“页面设置”和“退出”。单击任何一个菜单项或任何一个工具条按钮,文字标签都会显示哪个构件被选中。请更正题中带下划线的部分。运行结果如下图所示。 (分数:2.00)_国家二级(JAVA)机试-试卷 38 答案解析(总分:12.00,做题时间:90 分钟)一、基本操作题(总题数:2,分数:4.00)1.基本操作题()(分数:2.00)_解析:2.下面程序创建一个长宽均为 100 的 Frame 窗口,并且窗口的背景颜色是蓝色。请将程序补充完整。 注意:不改动程
4、序结构,不得增行或删行。 import java.awt .*; public class ex1 extends Frame public static void main(String args) ex1 t=new ex1(); t.setSize(100,100); _ t.setVisible(true); (分数:2.00)_正确答案:(正确答案:t.setBackground(Color.blue);)解析:解析:本题是基本操作题,主要考查对图形用户界面的掌握。类 ex1 继承了 Frame 类,因此该类的实例 t 就可以调用 Frame 类的基本方法 t.setBackgrou
5、nd(Color.blue),由于题干要求窗口的背景颜色为蓝色,因此需要调用 Color.blue 作为方法 setBackground 的参数。二、简单应用题(总题数:2,分数:4.00)3.简单应用题()(分数:2.00)_解析:4.在程序中,使用适当的布局管理器,在 Frame 框的 North 位置添加一句提示信息,在 South 位置添加一个单行文本框,在这个文本框中输入的内容将会显示在 Center 位置。运行结果如下图所示。 注意:请勿修改 main()主方法和其他已有语句内容,仅在横线处填入适当语句。 (分数:2.00)_正确答案:(正确答案:System.exit(0) Bo
6、rderLayout()解析:解析:本题考查知识点:AWT 库的使用,布局管理器的使用。解题思路:程序使用 label Title 来显示提示信息,使用 text Field 来获取用户的输入,最后将用户输入的结果通过 showTextLabel 显示出来。Frame 的关闭按钮的处理方式与 JFrame 的方式不同,Frame 必须手动实现退出按钮的事件处理机制,否则单击关闭按钮程序不会做出响应。本题的第 1 空就是对退出按钮事件响应的内容。BorderLayout 布局管理器将容器分为五个区域:North、South、East、West 和 Center。可以指定构件放在哪个区域,但是每个
7、区域只能放置一个构件。第 2 个空即是为 Frame 设置 BorderLayout 类型的布局管理器。三、综合应用题(总题数:2,分数:4.00)5.综合应用题()(分数:2.00)_解析:6.本程序的功能是监听对于菜单项和工具条按钮的操作。主窗口中有菜单、工具条和一个文字标签,菜单中有“文件”项,“文件”菜单中包括菜单项“新建”、“保存”、“打印”、“页面设置”和“退出”,工具条上包括按钮“新建”、“保存”、“打印”、“页面设置”和“退出”。单击任何一个菜单项或任何一个工具条按钮,文字标签都会显示哪个构件被选中。请更正题中带下划线的部分。运行结果如下图所示。 (分数:2.00)_正确答案:
8、(正确答案:setTitle(titleText) JMenu file=new JMenu(“文件“) cp.add(tb,BorderLayout.NORTH)或 cp.add(“North“,tb)解析:解析:本题考查知识点:类的继承、AWT 和 Swing 的区别、布局管理器的使用。解题思路:程序中声明了一个菜单构件、一个工具栏构件,声明了 5 个事件添加到菜单和工具栏中。子类继承父类以后,可以调用父类的 public、protected 成员变量和成员方法。子类还可以使用变量 super,访问已经被隐藏或被覆盖了的父类成员变量和方法。题中,JFrame 带一个参数的构造方法已经被子类
9、 advance 的构造方法覆盖。原题打算使用 super 调用父类的构造方法,为框架添加变量 titleText 定义的名字。这样的操作可以实现,但是 super 变量要求必须写在其所在的方法的第一行,而本题中 super 变量前还有语句setDefaultCloseOperation。因此在第 1 条下划线的位置不能使用 super,只能调用 set Title()方法,该方法可以为框架设置名字。file 是一个 AWT 构件 Menu 的对象,而它所在的容器 mb 是一个 Swing 的JMenuBar 对象,两类不同的构件,实现的方法不一样,不能使用 add 方法进行添加。因此在第 2 条下划线处需要把 file 的类型改为 JMenu。容器定义了 BorderLayout 布局管理器以后,如果添加构件时不指明添加的位置,则会把该构件添加到 Center 的位置。由于本题中不需要把名为 actionInfo 的 JLabel 构件添加到 Center 的位置,所以在第 3 条下划线处,添加 tb 构件时必须指明位置参数。本题答案中根据习惯把工具栏添加到容器的顶部,当然,添加到容器的 South、East 或 West 位置也都正确。