java语言 百文网手机站

自学考试Java语言程序设计试题(2)

时间:2021-04-13 13:34:05 java语言 我要投稿

自学考试Java语言程序设计试题

  TextPanel panel=new TextPanel();

  Container contentPane=getContentPane();

  contentPane.add(panel);

  }

  public static final int WIDTH=300;

  public static final int HEIGHT= 200;

  }

  class TextPanel extends JPanel {

  public void paintComponent(Graphics g) {

  super. ________;

  g.drawString(″Hello,World! ″,x,y);

  }

  public int x=100; public int y=100;

  }

  29.以下是子窗口中设置一个菜单条类的定义。类的构造方法根据指定的窗口名称和菜单表设置菜单条,菜单和菜单项,当选中某个菜单项时,在文本框中显示相应菜单项被选中的信息。

  class MenuWindow extends JFrame implements ActionListener {

  public static JTextField text;

  public MenuWindow(String s,String menuList[][]) {

  setTitle(s);

  Container con=this.getContentPane();

  con.setLayout(new BorderLayout());

  this.setLocation(100,100); this.setSize(300,100);

  JMenuBar menubar=new JMenuBar();

  for(int i=0; i

  JMenu menu=new JMenu(menuList[i][0]);

  for(int j=1;j

  JMenultem anltem=new JMenultem(menuList[i][j]);

  anltem.setActionCommand(menuList[i][j]);

  anltem.________;menu.add(anltem);

  }

  menubar.__________;

  }

  text=new JTextField();setJMenuBar(menubar);

  con.add(text,BorderLayout.SOUTH);

  }

  public void actionPerformed(ActionEvent e){

  text.setText(e.getActionCommand()+″菜单项被选中! ″);

  }

  }

  public class Test29 extends Applet {

  MenuWindow window;

  String menuList[][]={{″体育″,″跑步″,″打蓝球″,″打乒乓″},

  {″娱乐″,″唱歌″,″跳舞″}};

  public void init() {

  window=new MenuWindow(″体育娱乐之窗″,menuList);

  window.setVisible(true);

  }

  }

  30.以下是一个用鼠标自由作画的小应用程序。最简单的方法是根据鼠标所在位置画点,跟随鼠标的移动,不断画圆点,就能实现用鼠标作画。

  import java.awt.*;

  import java.awt.event.*;

  public class Test30 extends java.applet.Applet implements MouseMotionListener {

  Color color;int lineSize=2:

  int x=-1,y=-l;

  public void init(){

  setLocation(30,20); setSize(300,300);

  setBackground(Color.green);addMouseMotionListener(this);

  }

  public void paint(Graphics g){

  if(x!=-1&&y!=-1) {

  g.setColor(color);g.fillOval(x,y,1ineSize,lineSize);

  }

  }

  public void mouseMoved(MouseEvent e){}

  public void mouseDragged(MouseEvent e){

  x=e.getX();y=e.getY();_________;

  }

  public void ________ (Graphics g){ paint(g);}

  31.以下定义的类ShareData用于管理多个线程共享数据data。一个线程生成data,另一个线程使用data。约定,新生成的data只有被另一个线程使用后,才能生成下一个data。反之,一个data被使用后,也不能再继续使用。所以,生成和使用data的线程之间需要互斥和同步。以下是管理上述使用方式的类,类内有要管理的共享数据,以及对共享数据的存操作putData()和取操作getData()。

  class ShareData{

  int data;∥共享数据

  boolean newData=false;∥有最近新生成data的标志

  synchronized int getData(){

  while(!newData){

  try{ _________;

  } catch(InterruptedExceptipn e){

  System.out.println(″因错误,而中断!″);

  }

  }

  newData=false; notify();return data;

  }

  synchronized void putData(int n){

  while(newData){

  try{wait();

  }catch(InterruptedException e){

  System.out.println(″因错误,而中断! ″);

  }

  }

  data=n; __________;

  notify(); return;

  }

  }

  五、程序分析题(本大题共5小题,每小题4分,共20分)

  32.阅读下列程序,请写出该程序的输出结果。

  class Parent{

  private void method 1 () { System.out.println(″Parent′s method 1()″);}

  public void method 2 () { System.out.println(″Parent′s method 2()″);method 1();}

  }

  class Child extends Parent {

  public void method l (){ System.out.println(″Child′s method 1 ()″);}

  public static void main(String args[]){ Parent p = new Child();p.method2();}

  }

  33.阅读下列程序,请写出该程序的功能。