试题答案

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

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

来源:2exam.com 2014-3-5 8:57:13

三、综合应用题  
  本题的功能是用文本框来设定表盘中指针的位置。窗口中有一个画板和两个文本框,画板中绘制了一个表盘和时针、分针,通过文本框分别设定“时”和“分”,表盘中的时针和分针就会指到对应的位置上。  
  import java.awt.*;  
  import java.awt.event*;  
  import java.awt.geom.*;  
  import javax.swing.*;  
  import javax.swing.event.*;  
  public class java3 
  { 
  public static void main(String[]args) 
  { 
  TextTestFrame frame=new TextTestFrame():  
  frame.setDefauhCloseOperation(JFrame.EXIT_ 
  0N_CLOSE);  
  frame.show();  
  } 
  } 
  class TextTestFrame extends JFrame 
  { 
  public TextTestFrame() 
  {  
  setTitle("java3"):  
  setSize(DEFAULT_WIDTH,DEFAULT_ 
  HElGHT);  
  Container contentPane=getContentPane();  
  DocumentListener listener=new DoeumentListen- 
  er();  
  JPanel panel=new JPanel();  
  hourField=new JTextField("12",3);  
  panel.add(hourField);  
  hourField.getDocument().addDocumentListener 
  (this);  
  minuteField=new JTextField("00",3):  
  panel.add(minuteField);  
  minuteField.getDocument().addDocumentListener 
  (listener);  
    
  contentPane.add(panel,BorderLayout.S()UTH);  
  clock=new ClockPanel();  
  contentPane.add(clock,BorderLayout.CEN- 
  TER);  
  } 
  public void setClock() 
  { 
  try 
  { 
  int hours 
  =Integer.parseInt(hourField.getText().trim 
  ()):  
  int minutes 
  =Integer.parseInt(minuteField.getText().trim 
  ());  
  clock.setTime(hours,minutes);  
  } 
  catch(NumberFormatExcepfion e){} 
  } 
  public static final int DEFAULT_WIDTH=300;  
  public static final int DEFAULT_HEIGHT 
  =300;  
  private J TextField hourField;  
  private JTextField minuteField;  
  private ClockPanel clock;  
  private class clockFieldListener extends Docu- 
  mentListener 
  { 
  public void insertUpdate(DocumentEvent e){ set- 
  Clock();} 
  public void removeUpdate(DocumentEvent e){ 
  setClock();} 
  public void changedUpdate(DocumentEvent e){} 
  } 
  } 
  class ClockPanel extends JPanel 
  { 
  pubhc void paintComponent(Graphics g) 
  { 
  super.paintComponent(g);  
  Graphies2D g2=(Graphics2D)g;  
  Ellipse2D circle 
  =new Ellipse2D.Double(0,0,2* RADIUS,2 
  *RADIUS);  
  g2.draw(circle);  
  double hourAngle 
  =Math.toRadians(90-360*minutes/(12 
  *60));  
  drawHand(92,hourAngle,HOUR_HAND_ 
  LENGTH);  
  double minuteAngle 
  =Math.toRadians(90-360*minutes/60);  
  drawHand(g2,minuteAngle,MINUTE_HAND_ 
  LENGTH):  
  } 
  punic void drawHand(Graphics2D g2,  
  double angle,double handLength) 
  { 
  Point2D end=new Point2D.Double( 
  RADIUS+handLength*Math.cos(angle),  
  RADIUS-handLength*Math.sin(angle));  
  Point2D center=new Point2D.Double(RADIUS,  
  RADIUS):  
  g2.draw(new Line2D.Double(center,end));  
  } 
  public void setTime(int h,int m) 
  { 
  minutes=h*60+m;  
  repaint();  
  } 
  private double minutes=0;  
  private double RADIUS=100;  
  private double MINUTE_HAND_LENGTH= 
  0.8*RADIUS;  
  private double HOUR_HAND_LENGTH=0.6 
  *RADIUS:  
  }

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

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