1、二级 JAVA 机试-66 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题中定义了一个带有参数的构造方法 java1(),并定义了一个该类的对象 temp。构造方法 java1()有两个参数:字符串 name 和整型 age。定义对象 temp 时将字符串“Tom”和整数 17 传递给构造方法,构造方法将这两个参数打印输出。public class java1String name;int age;public static void main(Stringargs)String name=“Tom“;int age=17;java
2、1 temp=_;public java1(String name,_)_;this.age=age;System.out.println(name+“is“+age+“years old.“);(分数:30.00)_二、简单应用题(总题数:1,分数:40.00)2.本题的功能是获取鼠标在窗口中的位置。当鼠标移进窗口中,就会实时显示鼠标在窗口中的相对位置,比如显示为“鼠标的当前位置:X:Y”。(其中,X 为横坐标,Y 为纵坐标)import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;pu
3、blic class java2public static void main(stringargs)MouseFrame frame=new MouseFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();class MouseFrame extends JFramepublic MouseFrame()setTitle(“java2“);setSize(WIDTH,HEIGHT);MousePanel panel=new MousePanel();Container contentPane=get
4、ContentPane();contentPane.add(panel);public static final int WIDTH=300;public static final int HEIGHT=200;class MousePanel extends JPanelpublic MousePanel()addMouseListener(new MouseHandler();addMouseMotionListener(new MouseMorionHandler();public void paintComponent(Graphics g)super.paintComponent(g
5、);String text=“鼠标指针位置:“+mousex+“:“+mousey;g.drawstring(text,10,10);private int mousex,mousey;private class MouseMotionHandler_public void mouseMoved(MouseEvent event)mousex=event.getX();mousey=event.getY();repaint();public void mouseDragged(MouseEvent event)mousex=event.getX();mousey=event.getY();re
6、paint();private class MouseHandler_public void mousePressed(MouseEvent event)mousex=event.getX();mousey=event.getY();(分数:40.00)_三、综合应用题(总题数:1,分数:30.00)3.本题中使用了选项卡,窗口中有一个选项卡,总共有“系统”、“声卡”、“显卡”、“网卡”和“帮助”5 项选项面。单击各个选项的文字标签后,所选中的选项将为当前选项。“系统”选项上有 3 个复选按钮,分别控制“声卡”、“显卡”和“网卡”三个选项,选中某个按钮后,它所指示的选项就可用,否则不可用。im
7、port jav a.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class java3 extends JFrameJTabbedPane config=new JTabbedPane();public java3()super(“java3“);setSize(500,300);setDefaultCloseOperation(EXIT_ON_CLOSE);JPanel configPane=new JPanel();configPane.setLayout(new
8、 BoxLayout(configPane.BoxLayout.Y_AXIS);JTextArea question=new JTextArea(“下面的哪个选项/n“+“你想设置?“);question.setEditable(false);question.setMaximumSize(new Dimension(300,50);question.setAlignmentX(0.0f);question.setBackground(configPane.getBackground();JCheckBox audioCB=new JCheckBox(“声卡“,true);JCheckBox
9、nicCB=new JCheckBox(“网卡“,true);JCheckBox tvCB=new JCheckBox(“显示卡“,false);configPane.add(Box.createVerticalGlue();configPane.add(question);configPane.add(audioCB);configPane.add(nicCB);configPane.add(tvCB);configPane.add(Box.createVerticalGlue();JLabel audioPane=new JLabel(“声卡页面“);JLabel nicPane=new
10、JLabel(“网卡页面“);JLabel tvPane=new JLabel(“显示卡页面“);JLabel helpPane=new JLabel(“帮助信息“);audioCB.addItemListener(new TabManager(audioPane);nicCB.addItemListener(new TabManager(nicPane);tvCB.addItemListener(new TabManager(tvPane);config.addTab(“系统“,null,configPane,“Choose Installed Options“);config.addTab
11、(“声卡“,null,audioPane,“Audio system configuration“);config.addTab(“网卡“,null,nicPane,“Networking configuration“);config.addTab(“显示卡“,null,tvPane,“Video system configuration“);config.addTab(“帮助“,null,helpPane,“How DoI.“);getContentPane().add(config,BorderLayout.CENTER);class TabManger implements Action
12、ListenerComponent tab;public TabManager(Component tabToManage)tab=tabToManage;public void ItemStateChanged(ItemEvent ie)int index=config.indexOfComponent(tab);if(index!=-1)config.setEnabledAt(index,ie.getStateChange()=ItemEvent.SELECTED);this.repaint();public static void main(String args)java3 sc=ne
13、w java3();sc.setVisible(true);(分数:30.00)_二级 JAVA 机试-66 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题中定义了一个带有参数的构造方法 java1(),并定义了一个该类的对象 temp。构造方法 java1()有两个参数:字符串 name 和整型 age。定义对象 temp 时将字符串“Tom”和整数 17 传递给构造方法,构造方法将这两个参数打印输出。public class java1String name;int age;public static void main(Stri
14、ngargs)String name=“Tom“;int age=17;java1 temp=_;public java1(String name,_)_;this.age=age;System.out.println(name+“is“+age+“years old.“);(分数:30.00)_正确答案:(第 1 处:new java1(name,age)第 2 处:int age第 3 处:this.name=name)解析:解析 第 1 处用 java1 的构造函数新建了一个 java1 的对象 temp,并且带有两个参数 name 和age;第 2 处是构造函数的另一个参数;第 3 处
15、将字符串“Tom”传递给构造方法 java1(String name,int age)实现对数据成员的赋值。二、简单应用题(总题数:1,分数:40.00)2.本题的功能是获取鼠标在窗口中的位置。当鼠标移进窗口中,就会实时显示鼠标在窗口中的相对位置,比如显示为“鼠标的当前位置:X:Y”。(其中,X 为横坐标,Y 为纵坐标)import java.awt.*;import java.awt.event.*;import java.util.*;import javax.swing.*;public class java2public static void main(stringargs)Mous
16、eFrame frame=new MouseFrame();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();class MouseFrame extends JFramepublic MouseFrame()setTitle(“java2“);setSize(WIDTH,HEIGHT);MousePanel panel=new MousePanel();Container contentPane=getContentPane();contentPane.add(panel);public static fina
17、l int WIDTH=300;public static final int HEIGHT=200;class MousePanel extends JPanelpublic MousePanel()addMouseListener(new MouseHandler();addMouseMotionListener(new MouseMorionHandler();public void paintComponent(Graphics g)super.paintComponent(g);String text=“鼠标指针位置:“+mousex+“:“+mousey;g.drawstring(
18、text,10,10);private int mousex,mousey;private class MouseMotionHandler_public void mouseMoved(MouseEvent event)mousex=event.getX();mousey=event.getY();repaint();public void mouseDragged(MouseEvent event)mousex=event.getX();mousey=event.getY();repaint();private class MouseHandler_public void mousePre
19、ssed(MouseEvent event)mousex=event.getX();mousey=event.getY();(分数:40.00)_正确答案:(第 1 处:implements MouseMotionListener第 2 处:extends MouseAdapter)解析:解析 第 1 处实现了 MouseMotionListener 接口鼠标移动事件的监听;第 2 处是继承MouseAdapter 这个抽象类。三、综合应用题(总题数:1,分数:30.00)3.本题中使用了选项卡,窗口中有一个选项卡,总共有“系统”、“声卡”、“显卡”、“网卡”和“帮助”5 项选项面。单击各个选
20、项的文字标签后,所选中的选项将为当前选项。“系统”选项上有 3 个复选按钮,分别控制“声卡”、“显卡”和“网卡”三个选项,选中某个按钮后,它所指示的选项就可用,否则不可用。import jav a.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class java3 extends JFrameJTabbedPane config=new JTabbedPane();public java3()super(“java3“);setSize(500,300);setDefa
21、ultCloseOperation(EXIT_ON_CLOSE);JPanel configPane=new JPanel();configPane.setLayout(new BoxLayout(configPane.BoxLayout.Y_AXIS);JTextArea question=new JTextArea(“下面的哪个选项/n“+“你想设置?“);question.setEditable(false);question.setMaximumSize(new Dimension(300,50);question.setAlignmentX(0.0f);question.setBac
22、kground(configPane.getBackground();JCheckBox audioCB=new JCheckBox(“声卡“,true);JCheckBox nicCB=new JCheckBox(“网卡“,true);JCheckBox tvCB=new JCheckBox(“显示卡“,false);configPane.add(Box.createVerticalGlue();configPane.add(question);configPane.add(audioCB);configPane.add(nicCB);configPane.add(tvCB);configP
23、ane.add(Box.createVerticalGlue();JLabel audioPane=new JLabel(“声卡页面“);JLabel nicPane=new JLabel(“网卡页面“);JLabel tvPane=new JLabel(“显示卡页面“);JLabel helpPane=new JLabel(“帮助信息“);audioCB.addItemListener(new TabManager(audioPane);nicCB.addItemListener(new TabManager(nicPane);tvCB.addItemListener(new TabMana
24、ger(tvPane);config.addTab(“系统“,null,configPane,“Choose Installed Options“);config.addTab(“声卡“,null,audioPane,“Audio system configuration“);config.addTab(“网卡“,null,nicPane,“Networking configuration“);config.addTab(“显示卡“,null,tvPane,“Video system configuration“);config.addTab(“帮助“,null,helpPane,“How D
25、oI.“);getContentPane().add(config,BorderLayout.CENTER);class TabManger implements ActionListenerComponent tab;public TabManager(Component tabToManage)tab=tabToManage;public void ItemStateChanged(ItemEvent ie)int index=config.indexOfComponent(tab);if(index!=-1)config.setEnabledAt(index,ie.getStateCha
26、nge()=ItemEvent.SELECTED);this.repaint();public static void main(String args)java3 sc=new java3();sc.setVisible(true);(分数:30.00)_正确答案:(第 1 处:Class TabManager implements ItemListener第 2 处:public void itemStateChanged(ItemEvent ie)第 3 处:java3.this.repaint()解析:解析 第 1 处实现了 ItemListener 接口,用于捕捉带有 Item 的组件产生的事件;第 2 处接口中定义的 itemStateChanged(ItemEvent e)将执行需要在已选定(或已取消选定)项时发生的操作。而这里的ie 是具体的 ItemEvent 对象,作为参数被传递;第 3 处调用 repaint()方法重绘。