试题答案

3773考试网计算机等级考试试题答案正文

2014计算机二级考试JAVA上机试题及答案7

来源:2exam.com 2014-3-5 8:56:41

 

三、综合应用题  
  本题的功能是用键盘上的方向键来控制直线的绘制方向。如果一直按向上的方向键,则在窗口中从焦点开始向上缓慢绘制直线,按其他方向键也会向对应的方向缓慢地绘制直线,如果按下键的话,绘制直线的速度会加快。 
  import java.awt.*;  
  import java.awt.geom.*;  
  import java.util.*;  
  import java.awt.event.*;  
  import javax.swing.*;  
  public class java3{ 
  public static void main(String[]args) 
  { 
  SketchFrame frame=new SketchFrame();  
  frame.setDefauhCloseOperation(JFrame.EXIT_ 
  ON_CLOSE);  
  frame.show();  
  } 
  } 
  class SketchFrame extends JFrame 
  { 
  public SketchFrame() 
  { 
  setTitle("java3");  
  setSize(DEFAULT WIDTH, DEFAULT 
  HEIGHT);  
  SketehPanel panel=new SketchPanel();  
  Container contentPane=getContentPane();  
  contentPane.add(panel);  
  } 
  public static final int DEFAULT_WIDTH=300;  
  public static final int DEFAULT_HEIGHT 
  =200;  
  } 
  class SketehPanel extends JPanel 
  { 
  public void sketchPanel() 
  { 
  last=new Point2D.Double(100,100);  
  lines=new ArrayList();  
  KeyHandler listener=new KeyHandler();  
  addkeyListener(this);  
  setFocusable(true);  
  } 
  public void add(int dx,int dy)  
  { 
  Point2D end=new Point2D.Double(last.getX() 
  +dx,  
  last.getY()+dy):  
  Line2D line=new Line2D.Double(last,end);  
  lines.add(line):  
  repaint();  
  last=end:  
  } 
  public void paintComponent(Graphics g) 
  { 
  super.paintComponent(g);  
  Graphics2D g2=(Graphics2D)g;  
  for(int i=0;i  92.draw((Line2D)lines.get(i));  
  }  
  private Point2D last:  
  private ArrayList lines;  
  private static final int SMALL_INCREMENT 
  =1:  
  private static final int LARGE_INCREMENT 
  =5;  
  private class KeyHandler implements KeyListener 
  { 
  public void keyPressed(KeyEvent event) 
  { 
  KEY keyCode=event.getKeyCode();  
  int d;  
  if(event.isShiftDown()) 
  d=LARGE_INCREMENT;  
  else 
  d=SMALL_INCREMENT;  
  if(keyCode= =KeyEvent.VK_LEFT)add(- 
  d,0);  
  else if(keyCode= =KeyEvent.VK_RIGHT) 
  add(d,0);  
  else if(keyCode= =KeyEvent.VK_UP)add(0,  
  -d):  
  else if(keyCode= =KeyEvent.VK_DOWN) 
  add(0,d);  
  } 
  public void keyReleased(KeyEvent event){} 
  public void keyTyped(KeyEvent event) 
  { 
  char keyChar=event.getKeyChar();  
  int d;  
  if(Character.isUpperCase(keyChar)) 
  { 
  d=LARGE_INCREMENT;  
  keyChar=Character.toLowerCase(keyChar);  
  } 
  else 
  d=SMALL_INCREMENT;  
  } 
  } 
  }

上一页  [1] [2] [3] [4] 下一页

触屏版 电脑版
3773考试网 琼ICP备12003406号-1