......
} else if(e.getItemSelectable() == box2) { text. setText(\公司生产\ } } }
30.这是一个播放幻灯片的小应用程序中的paint()方法。设幻灯片已由小应用程序的init()方法装入内存,并存放于myImage数组中,幻灯片的张数放于变量num中,paint()方法要播放的幻灯片号是int currentImage = 0; final int num = 30;
Image [ ] myImage = new _________ [num]; Image ??
public void paint(Graphics g) {
if ((mylmage[currentImage]) != null)
g. _________ (myImage[currentImage], 10, 10, drawImage myImage [currentImage].getWidth(this),
myImage [currentImage].getHeight(this), this); }
31.以下定义的类ShareData用于管理多个线程共享数据val。为了保证对共享数据val修改的完整性,线程对val的操作需要互斥,类ShareData中定义的方法modiData()就是供共享val的线程修改val的方法。程序共有20个线程共享val,有些减少val,有些增加val。 public class Class1 {
public static void main(String args[]){ ShareData mrc = new ShareData(50); Thread[] aThreadArray = new Thread[20];
System.out.println(\刚开始的值是:\ System.out.println(\多个线程正在工作,请稍等!\ for(int i = 0; i < 20; i++) { int d = i % 2 == 0 ? 50 : -30;
aThreadArray[i] = new Thread(new MyMultiThreadClass(mrc, d)); aThreadArray[i].start(); }
WhileLoop ://等待所有线程结束
......
while(true){
for(int i = 0; i < 20; i++)
if(aThreadArray[i]. _________ ())continue WhileLoop; isAlive() break; }
System.out.println(\最后的结果是: \} }
class MyMultiThreadClass implements Runnable { ShareData UseInteger; int delta;
MyMultiThreadClass(ShareData mrc, int d) { UseInteger = mrc; delta = d; }
public void run() {
for(int i = 0; i < 1000; i++) { UseInteger.modiData(delta);
try {Thread.sleep(10) ;//做一些其他的处理 }catch(InterruptedException e){ } } } }
class ShareData { int val;
ShareData(int initValue){val = initValue; } int getVal(){return val;}
private void putVal(int v){val = v;}
_________ void modiData(int d){ synchronized putVal(getVal() + d); } }
五、程序分析题(本大题共5小题,每小题4分,共20分)
......
32.阅读下列程序,请写出该程序的输出结果。 class A { int x, y; A(int a, int b) { x= a; y= b; } }
public class sample {
public static void main(String args[]) { A pl, p2;
p2 = new A(12, 15); p1 = p2; p2.x++;
System.out.println(\ } } p1.x=13
33.阅读下列程序,请写出调用pascal(4)的输出结果。 static void pascal(int n) { int pas[]; pas = new int[n]; pas[0] = 1;
System.out.println(pas[0]); for (int i = 2; i <= n; i++) {
/* 由存储在pas中的原来内容生成新内容*/ pas[i - l] =1;
for (int j = i- 2;j > 0; j--) pas[j] = pas[j] + pas[j - 1 ]; for (int j = 0; j < i; j++)
System.out.print(pas[j] +\ \ System.out.println(); }
......
}
1 1 1 1 2 1 1 3 3 1
34.阅读下列程序,请用示意图画出程序运行时呈现的界面。 import java.applet.*; import java.awt *; import javax.swing.*; class MyPanel extends JPanel { JButton button; JLabel label; MyPanel(String s1, String s2) {
this.setLayout(new GridLayout(2, 2)); button = new JButton(s1);
label = new JLabel(s2, JLabel.CENTER);
add(button); add(label); add(new JLabel()); } }
public class Class1 {
public static void main(String args[]) {
JFrame mw = new JFrame(\一个示意窗口\ mw.setSize(400, 250);
Container con = mw.getContentPane(); con.setLayout(new BorderLayout()); MyPanel panel1, panel2;
panel1 = new MyPanel(\按钮1\标签1\ panel2 = new MyPanel(\按钮2\标签2\ JButton button = new JButton(\开始按钮\ con.add(panel1, \ con.add(button, \ mw.setVisible(true);
......
} }
35.阅读下列程序,请回答以下问题:
(1)程序要求在文本框text中输入的内容是什么? 需要读取的文件URL地址 (2)辅助文本区showArea组件的作用是什么? 显示读取的文件内容 (3)如何使程序开始下载网络文本文件? 点击下载按钮 (4)程序采用什么输入方式下载网络文件? 使用字节流完成下载
import java.net.*; import java.awt.*;
import java.awt.event.*; import,java.io.*; import javax.swing.*;