1、二级 JAVA 机试-28 及答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.00)1.本题的功能是用冒泡法对数组元素 arr=30,1,-9,70 进行从小到大排列。冒泡法排序是比较相邻的两个元素的大小,然后把小的元素交换到前而。public class java1public static void main(Stringargs)int i,j;int arr=30,1,-9,70);int n=_;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(arriarrj)int temp=arri;_;_;for(i=0;in;
2、i+)System.out.print(arri+“);(分数:30.00)_二、简单应用题(总题数:1,分数:40.00)2.本题的功能是用按钮来控制文字的颜色。窗口中有三个按钮“Yellow”、“Blue”和“Red”,它们分别对应文字标签中文本的颜色为黄色、蓝色和红色,单击任意一个按钮,文字标签中的文本就变成按钮对应的颜色。import java.awt.*;import java.awt.event.*;import javax.swing.*;class ButtonPanel extends JPanel implements ActionListenerpublic Button
3、Panel()yellowButton=new JButton(“Yellow“);blueButton=new JButton(“Blue“);redButton=new JButton(“Red“);j1=new JLabel(“I am from China!“);add(yellowButton);add(blueButton);add(redButton);add(j1);yellowButton.addActionListener(this);blueButton.addActionListener(this);redButton.addActionListener(this);p
4、ublic void actionPerformed(ActionEvent evt)Object source=evt.getSource();Color color=getForcground();if(source=yellowButton)color=Color.yellow;else if(source=blueButton)color=Color.blue;else if(source=redButton)color=Color.red;_;_;private JButton yellowButton;private JButton blueButton;private JButt
5、on redButton;private JLabel j1;class ButtonFrame extends JFramepublic ButtonFrame()setTitle(“exam 16“);setSize(300,200);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););Container contentPane=getContentPane();contentPane.add(new ButtonPanel();public class
6、java2public static void main(Stringargs)JFrame frame=new ButtonFrame();frame.show();(分数:40.00)_三、综合应用题(总题数:1,分数:30.00)3.本题的功能是监听对于菜单项和工具条的操作。窗口中有一个菜单“Color”和一个工具体,菜单“Color”中有菜单项“Yellow”、“Blue”、“Red”和“Exit”,每个菜单项都有对应的图形,单击前三个颜色菜单项,主窗口就变成对应的颜色,单击“Exit”则退出程序。工具条上有 4 个按钮,分别为三个颜色按钮和一个退出程序的按钮,单击任意一个颜色按钮,主
7、窗口将变成按钮对应的颜色,单击退出程序按钮,则退出程序。import java.awt.*;import java.awt.event.*;import java.beans.*;import iavax.swing.*;public class java3public static void main(Stringargs)ToolBarFrame frame=new ToolBarFrarne();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();class ToolBarFrame extends JFra
8、mepublic ToolBarFrame()setTitle(“java3“);setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);Container contentPane=getContentPane();panel=new JPanel();contentPane.add(panel,BorderLayout.CENTER);Action blueAction=new ColorAction(“Blue“,new ImageIcon(“java3-blue-ball.gif“),Color.BLUE);Action yellowAction=new ColorA
9、ction(“Yellow“,new ImageIcon(“java3-yellow-ball.gif“),Color.YELLOW);Action redAction=new ColorAction(“Red“,new ImageIcon(“java3-red-ball.gif“),Color.RED);Action exitAction=newAbstractAction(“Exit“,new ImageIcon(“java3-exit.gif“)public void actionPerformed(ActionEvent event)System.exit(0);exitAction.
10、putValue(Action.SHORT_DESCRIPTION_“Exit“);JToolBar bar=new JToolBar();bar.add(blueAction);bar.add(yellowAction);bar.add(redAction);bar.addSeparator();bar.add(exitAction);contentPane.addToolBar(bar,BorderLayout.NORTH);JMenu menu=new JMenu(“Color“);menu.add(yellowAction);menu.add(blueAction);menu.add(
11、redAction);menu.add(exitAction);JMenuBar menuBar=new JMenuBar();menuBar.add(menu);SetJMenu(menuBar);public static final int DEFAULT_WIDTH=300;public static final int DEFAULT_HEIGHT=200;private JPanel panel;class ColorAction extends AbstractActionpublic ColorAction(String name,Icon icon,Color c)putVa
12、lue(Action.NAME,name);putValue(Action.SMALL_ICON,icon);putValue(Action.SHORT_DESCRIPTION,name +“background“);putValue(“Color“,c);public void actionPerformed(ActionEvent evt)Color c=(Color)getValuc(“Color“);panel.setBackcolor(c);(分数:30.00)_二级 JAVA 机试-28 答案解析(总分:100.00,做题时间:90 分钟)一、基本操作题(总题数:1,分数:30.0
13、0)1.本题的功能是用冒泡法对数组元素 arr=30,1,-9,70 进行从小到大排列。冒泡法排序是比较相邻的两个元素的大小,然后把小的元素交换到前而。public class java1public static void main(Stringargs)int i,j;int arr=30,1,-9,70);int n=_;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(arriarrj)int temp=arri;_;_;for(i=0;in;i+)System.out.print(arri+“);(分数:30.00)_正确答案:(第 1 处:arr.length第
14、 2 处:arri=arrj第 3 处:arrj=temp)解析:解析 第 1 处从下面的循环结构可看出 n 的值应为数组的大小;第 2 处和第 3 处是借助临时变量把小的元素交换到前面。二、简单应用题(总题数:1,分数:40.00)2.本题的功能是用按钮来控制文字的颜色。窗口中有三个按钮“Yellow”、“Blue”和“Red”,它们分别对应文字标签中文本的颜色为黄色、蓝色和红色,单击任意一个按钮,文字标签中的文本就变成按钮对应的颜色。import java.awt.*;import java.awt.event.*;import javax.swing.*;class ButtonPane
15、l extends JPanel implements ActionListenerpublic ButtonPanel()yellowButton=new JButton(“Yellow“);blueButton=new JButton(“Blue“);redButton=new JButton(“Red“);j1=new JLabel(“I am from China!“);add(yellowButton);add(blueButton);add(redButton);add(j1);yellowButton.addActionListener(this);blueButton.addA
16、ctionListener(this);redButton.addActionListener(this);public void actionPerformed(ActionEvent evt)Object source=evt.getSource();Color color=getForcground();if(source=yellowButton)color=Color.yellow;else if(source=blueButton)color=Color.blue;else if(source=redButton)color=Color.red;_;_;private JButto
17、n yellowButton;private JButton blueButton;private JButton redButton;private JLabel j1;class ButtonFrame extends JFramepublic ButtonFrame()setTitle(“exam 16“);setSize(300,200);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0););Container contentPane=getConten
18、tPane();contentPane.add(new ButtonPanel();public class java2public static void main(Stringargs)JFrame frame=new ButtonFrame();frame.show();(分数:40.00)_正确答案:(第 1 处:j1.setForeground(color)第 2 处:j1.repaint()解析:解析 在构件类的方法中,setForeground()为设置构件的前景色,repaint()为重新绘制构件。三、综合应用题(总题数:1,分数:30.00)3.本题的功能是监听对于菜单项和工
19、具条的操作。窗口中有一个菜单“Color”和一个工具体,菜单“Color”中有菜单项“Yellow”、“Blue”、“Red”和“Exit”,每个菜单项都有对应的图形,单击前三个颜色菜单项,主窗口就变成对应的颜色,单击“Exit”则退出程序。工具条上有 4 个按钮,分别为三个颜色按钮和一个退出程序的按钮,单击任意一个颜色按钮,主窗口将变成按钮对应的颜色,单击退出程序按钮,则退出程序。import java.awt.*;import java.awt.event.*;import java.beans.*;import iavax.swing.*;public class java3public
20、 static void main(Stringargs)ToolBarFrame frame=new ToolBarFrarne();frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.show();class ToolBarFrame extends JFramepublic ToolBarFrame()setTitle(“java3“);setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);Container contentPane=getContentPane();panel=new JPanel(
21、);contentPane.add(panel,BorderLayout.CENTER);Action blueAction=new ColorAction(“Blue“,new ImageIcon(“java3-blue-ball.gif“),Color.BLUE);Action yellowAction=new ColorAction(“Yellow“,new ImageIcon(“java3-yellow-ball.gif“),Color.YELLOW);Action redAction=new ColorAction(“Red“,new ImageIcon(“java3-red-bal
22、l.gif“),Color.RED);Action exitAction=newAbstractAction(“Exit“,new ImageIcon(“java3-exit.gif“)public void actionPerformed(ActionEvent event)System.exit(0);exitAction.putValue(Action.SHORT_DESCRIPTION_“Exit“);JToolBar bar=new JToolBar();bar.add(blueAction);bar.add(yellowAction);bar.add(redAction);bar.
23、addSeparator();bar.add(exitAction);contentPane.addToolBar(bar,BorderLayout.NORTH);JMenu menu=new JMenu(“Color“);menu.add(yellowAction);menu.add(blueAction);menu.add(redAction);menu.add(exitAction);JMenuBar menuBar=new JMenuBar();menuBar.add(menu);SetJMenu(menuBar);public static final int DEFAULT_WID
24、TH=300;public static final int DEFAULT_HEIGHT=200;private JPanel panel;class ColorAction extends AbstractActionpublic ColorAction(String name,Icon icon,Color c)putValue(Action.NAME,name);putValue(Action.SMALL_ICON,icon);putValue(Action.SHORT_DESCRIPTION,name +“background“);putValue(“Color“,c);public
25、 void actionPerformed(ActionEvent evt)Color c=(Color)getValuc(“Color“);panel.setBackcolor(c);(分数:30.00)_正确答案:(第 1 处:contentPane.add(bar,BorderLayout.NORTH)第 2 处:setJMenuBar(menuBar)第 3 处:panel.setBackgroud(c)解析:解析 第 1 处将工具条添加到容器内使用的方法应为 add;第 2 处的上一步为将 menu 添加到menuBar 中,从这一步的参数为 menuBar 可看出应为 setJMenuBar;第 3 处设置面板的背景颜色应使用的方法为 setBackgroud()。