1、二级 JAVA 机试-38 及答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1.private static int size;(分数:33.00)_二、2简单应用题(总题数:1,分数:33.00)2.请完成下列 Java 程序:创建一个进度条,可以控制其开始和暂停。要求进度条与线程关联,由线程控制,点击开始按钮开始进度条的滚动,点击停止按钮,暂停,继续点击开始按钮则继续进行。注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。import javax.swing.*;import javax.swing.ev
2、ent.*;import java.awt.*;import java.awt.event.*;public class ex15_2 extends JPanel ThreadProg thProgress;JProgressBar jPb;/声明一个进程条对象static JFrame jf;public ex15_2()setLayout(new BorderLayout();jPb=new JProgressBar();add(jpb,“Center“);JPanel btnPanel=new JPanel();JButton btnStart=new JButton(“开始“);bt
3、nPanel.add(btnStart);btnStart.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ae)_;);JButton btnStop=new JButton(“停止“);btnPanel.add(btnStop);btnStop.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ae)_;);add(btnPanel,BorderLayout.SOUTH);pub
4、lic void startProgress()if(thProgress=null|!thProgress.isAlive()thProgress=new ThreadProg(jpb);thProgress.start();public void stopProgress()thProgress.setStop(true);public static VOid main(String args)jf=new JPrame(“ex15_2“);ex15_2 obj15_2=new ex15_2();jf.getContentPane().add(“Center“,obj15_2);jf.se
5、tSize(250,80);jf.addWindowListener(new WindowAdapter()pubhc void windowClosing(WindowEvent we)System.exit(0););jf.setVisible(true);class ThreadProg extends Threadprivate JProgressBar jpb;private boolean bStop=false;private boolean bAlive=false;pubhc ThreadProg(JProgressBar jpb)this.jpb=jpb;public VO
6、id setStop(boolean b)bStop=b;public void run()int min=0;int max=60;jpb.setMinimum(min);jpb.setMaximum(max);jpb.setValue(min);for(int x=min;x=max;x+)if(bStop)break;elsejpb.setValue(x);tryThread.sleep(150);catch(InterruptedException e)bAlive=false;(分数:33.00)_三、3综合应用题(总题数:1,分数:34.00)3.下面是一个 Applet 程序,其
7、功能是在窗口中绘制 3 个半径递增的圆,并用 RGB 三原色对这 3 个圆填充。要求建立一个绘制圆的类,实现根据指定颜色进行填充的功能,在主程序中通过调用这个类的方法实现圆的绘制。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。import java.applet.*;import java.awt.*;import java.awt.*;/*applet code=“ex15_3.class“width=800 height=400/applet*/class CanvasCircle extends Canvasprivate Colo
8、r cCircle;public CanvasCircle(Color c)cCircle=c;public void paint(Graphics g)int dimCircle,xCircle,yCircle;Dimension sizeCurrent=getSize();if(sizeCurrent.widthsizeCurrent.height)dimCircle=sizeCurrent.width;elsedimCircle=sizeCurrent.height;g.setColor(cCircle);xCircle=(sizeCurrent.heighe-dimCircle)/2;
9、yCircle=(sizeCurrent.width-dimCircle)/2;g.fillOval(xCircle,yCircle,dimCircle,dimCircle);public class exl5_3 extends Appletpublic void init()GridBagLayout gbl=new GddBagLayout();GridBagConstraints gbc=new CridBagConstraints();CanvasCircle circleNew;setLayout(gbl);gbc.weightx=1.0;gbc.weighty=1.0;gbc.f
10、ill=GridBagConstraints.BOTH;circleNew=new CanvasCircle(Color.red);gbl.setConstraints(circleNew,gbc);add(circleNeW);gbc.weightx=1.5;gbc.weighty=1.5;circleNew=new CanvasCircle(Color.green);gbl.sctConstraints(eircleNew,gbc);add(circleNew);gbc.weightx=2.0;gbc.weighty=2.0;circleNew=new CanvasCircle(Color
11、.blue);gbl.setConstraints(circleNew,gbc);add(circleNew);ex15_3.htmlHTMLHEADTITLEex15_3/TITLE/HEADBODYapplet code=“ex15_3.class“width=800 height=400/applet/BODY/HTMI(分数:34.00)_二级 JAVA 机试-38 答案解析(总分:100.00,做题时间:90 分钟)一、1基本操作题(总题数:1,分数:33.00)1.private static int size;(分数:33.00)_正确答案:(size+;Outer.this.s
12、ize+;Inner k=new lnner();)解析:二、2简单应用题(总题数:1,分数:33.00)2.请完成下列 Java 程序:创建一个进度条,可以控制其开始和暂停。要求进度条与线程关联,由线程控制,点击开始按钮开始进度条的滚动,点击停止按钮,暂停,继续点击开始按钮则继续进行。注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。import javax.swing.*;import javax.swing.event.*;import java.awt.*;import java.awt.event.*;public class ex15_2 exten
13、ds JPanel ThreadProg thProgress;JProgressBar jPb;/声明一个进程条对象static JFrame jf;public ex15_2()setLayout(new BorderLayout();jPb=new JProgressBar();add(jpb,“Center“);JPanel btnPanel=new JPanel();JButton btnStart=new JButton(“开始“);btnPanel.add(btnStart);btnStart.addActionListener(new ActionListener()publi
14、c void actionPerformed(ActionEvent ae)_;);JButton btnStop=new JButton(“停止“);btnPanel.add(btnStop);btnStop.addActionListener(new ActionListener()public void actionPerformed(ActionEvent ae)_;);add(btnPanel,BorderLayout.SOUTH);public void startProgress()if(thProgress=null|!thProgress.isAlive()thProgres
15、s=new ThreadProg(jpb);thProgress.start();public void stopProgress()thProgress.setStop(true);public static VOid main(String args)jf=new JPrame(“ex15_2“);ex15_2 obj15_2=new ex15_2();jf.getContentPane().add(“Center“,obj15_2);jf.setSize(250,80);jf.addWindowListener(new WindowAdapter()pubhc void windowCl
16、osing(WindowEvent we)System.exit(0););jf.setVisible(true);class ThreadProg extends Threadprivate JProgressBar jpb;private boolean bStop=false;private boolean bAlive=false;pubhc ThreadProg(JProgressBar jpb)this.jpb=jpb;public VOid setStop(boolean b)bStop=b;public void run()int min=0;int max=60;jpb.se
17、tMinimum(min);jpb.setMaximum(max);jpb.setValue(min);for(int x=min;x=max;x+)if(bStop)break;elsejpb.setValue(x);tryThread.sleep(150);catch(InterruptedException e)bAlive=false;(分数:33.00)_正确答案:(startProgress()stopProgress()解析:三、3综合应用题(总题数:1,分数:34.00)3.下面是一个 Applet 程序,其功能是在窗口中绘制 3 个半径递增的圆,并用 RGB 三原色对这 3
18、个圆填充。要求建立一个绘制圆的类,实现根据指定颜色进行填充的功能,在主程序中通过调用这个类的方法实现圆的绘制。请改正程序中的错误(有下画线的语句),使程序能输出正确的结果。注意:不改动程序的结构,不得增行或删行。import java.applet.*;import java.awt.*;import java.awt.*;/*applet code=“ex15_3.class“width=800 height=400/applet*/class CanvasCircle extends Canvasprivate Color cCircle;public CanvasCircle(Color
19、 c)cCircle=c;public void paint(Graphics g)int dimCircle,xCircle,yCircle;Dimension sizeCurrent=getSize();if(sizeCurrent.widthsizeCurrent.height)dimCircle=sizeCurrent.width;elsedimCircle=sizeCurrent.height;g.setColor(cCircle);xCircle=(sizeCurrent.heighe-dimCircle)/2;yCircle=(sizeCurrent.width-dimCircl
20、e)/2;g.fillOval(xCircle,yCircle,dimCircle,dimCircle);public class exl5_3 extends Appletpublic void init()GridBagLayout gbl=new GddBagLayout();GridBagConstraints gbc=new CridBagConstraints();CanvasCircle circleNew;setLayout(gbl);gbc.weightx=1.0;gbc.weighty=1.0;gbc.fill=GridBagConstraints.BOTH;circleN
21、ew=new CanvasCircle(Color.red);gbl.setConstraints(circleNew,gbc);add(circleNeW);gbc.weightx=1.5;gbc.weighty=1.5;circleNew=new CanvasCircle(Color.green);gbl.sctConstraints(eircleNew,gbc);add(circleNew);gbc.weightx=2.0;gbc.weighty=2.0;circleNew=new CanvasCircle(Color.blue);gbl.setConstraints(circleNew,gbc);add(circleNew);ex15_3.htmlHTMLHEADTITLEex15_3/TITLE/HEADBODYapplet code=“ex15_3.class“width=800 height=400/applet/BODY/HTMI(分数:34.00)_正确答案:(sizeCurrent.widthsizeCurrent.heightxCircle=(sizeCurrent.width-dimCircle)/2yCircle=(sizeCurrent.height-dimCircle)/2)解析: