问题 问答题

本题中,主窗口中有两个下拉菜单,一个控制绘制图形的颜色,另一个控制绘制的图形,在画板中单击鼠标,则以单击的位置为左上角、以选定的颜色绘制选定的图形。   import java.awt.*;   import java.awt.event.*;   class java3 extends Frame {   String[]figureNames={"圆形","椭圆形","正方形","长方形");   String[]colorNames={"红色","绿色","蓝色","黄色"};   Color[]colorValues={Color.red,Color.green,   Color.blue,Color.yellow);   Choice chFigure=new Choice();   Choice chColor=new Choice();   int curX,curY;   java3(){   super("java3");   addWindowListener(new WindowAdapter(){   public void windowClosing(WindowEvent e){   System.exit(O);   }   });   Panel P=new Panel(new GridLayout(1,O));   for(int i=0;i  ehFigure.addhem(figureNames[i]);   }   for(int i=0;i  chColor.addhem(eolorNames[i]);   }   P.add(chColor);   P.add(chFigure);   add(p,BorderLayout.NORTH);   addMouseListener(this);   setSize(300,300);   show();   }   public void update(Graphics g){   g.getColor(colorValues[chColor,getSelectedIndex   ()]);   switch(chFigure.getSelectedlndex()){   case 0;   g.fillOval(curX,curY,30,30);   break;   case l:   g.fillOval(curX,curY,30,50);   break;   case 2:   g.fillRect(curX,curY,30,30);   break;   case 3:   g.fillRect(curX,curY,30,50);   break;   }   }   class MouseEventListener implements MouseAda-   pter{   public void mousePressed(MouseEvent evt){   curX=evt.getX();   curY=evt.getY();   repaint();   }   }   static public void main(String[]args){   new java3();   }   )

答案

参考答案:第1处:addMouseListener(new MouseEventListener())   第2处:g.setcolor(colorValues[chcolor.getselectedIndex()])   第3处:class MouseEventListener extends MouseAdapter

解析:【解析】第1处是注册鼠标监听器,主要是单击动作;第2处是设置Graphics类对象g的颜色通过将从chColor中选中的字符串转换成colorValues类型来实现;第3处定义一个MouseEventListener类来继承MouseAdapter鼠标事件适配器。

问答题
解答题