java语言的科学与艺术-编程练习10.11

  1 import acm.graphics.*;
  2 import acm.program.*;
  3 import acm.gui.*;
  4 import java.awt.event.*;
  5 import javax.swing.*;
  6 
  7 //单位转换程序;
  8 public class LengthConverter extends Program {
  9     //初始化界面;
 10     public void init() {
 11         setLayout(new TableLayout(3, 2));
 12         lengthChooser1 = new JComboBox();
 13         lengthChooser2 = new JComboBox();
 14         button1 = new JButton("Convert ->");
 15         button2 = new JButton("<- Convert");
 16         field1 = new DoubleField();
 17         field2 = new DoubleField();
 18         lengthChooser1 = new JComboBox();
 19         lengthChooser2 = new JComboBox();
 20         lengthChooser1.addItem("inch");
 21         lengthChooser1.addItem("foot");
 22         lengthChooser1.addItem("yard");
 23         lengthChooser1.addItem("fathom");
 24         lengthChooser1.addItem("rod");
 25         lengthChooser1.addItem("furlog");
 26         lengthChooser1.addItem("mile");
 27         lengthChooser2.addItem("inch");
 28         lengthChooser2.addItem("foot");
 29         lengthChooser2.addItem("yard");
 30         lengthChooser2.addItem("fathom");
 31         lengthChooser2.addItem("rod");
 32         lengthChooser2.addItem("furlog");
 33         lengthChooser2.addItem("mile");
 34         add(lengthChooser1);
 35         add(lengthChooser2);
 36         add(field1);
 37         add(field2);
 38         add(button1);
 39         add(button2);
 40         addActionListeners();
 41     }
 42     /*Listens of buttons action */
 43     public void actionPerformed(ActionEvent e) {
 44         String boxName1 = (String) lengthChooser1.getSelectedItem(); 
 45         String boxName2 = (String) lengthChooser2.getSelectedItem();
 46         String cmd = e.getActionCommand();
 47         if(cmd.equals("Convert ->")) {
 48             double len1 = field1.getValue();
 49             double len2 = len1 * convertNum1() / convertNum2();
 50             field2.setValue(len2);
 51         } else if (cmd.equals("<- Convert")) {
 52             double len2 = field2.getValue();
 53             double len1 = len2 * convertNum2() / convertNum1();
 54             field1.setValue(len1);
 55         }
 56     }
 57     /* 返回单位转换系数 */
 58     private double convertNum1(){
 59         String boxName1 = (String) lengthChooser1.getSelectedItem(); 
 60         String boxName2 = (String) lengthChooser2.getSelectedItem();
 61         if(boxName1.equals("inch")) {
 62             return 1;
 63         } else if(boxName1.equals("foot")) {
 64             return 12;
 65         } else if(boxName1.equals("yard")) {
 66             return 3;
 67         } else if(boxName1.equals("fathom")) {
 68             return 72;
 69         } else if(boxName1.equals("rod")) {
 70             return 208;
 71         } else if(boxName1.equals("furlog")) {
 72             return 66;
 73         } else {
 74             return 5280;
 75         }
 76     }
 77     private double convertNum2(){
 78         String boxName1 = (String) lengthChooser2.getSelectedItem();
 79         if(boxName1.equals("inch")) {
 80             return 1;
 81         } else if(boxName1.equals("foot")) {
 82             return 12;
 83         } else if(boxName1.equals("yard")) {
 84             return 3;
 85         } else if(boxName1.equals("fathom")) {
 86             return 72;
 87         } else if(boxName1.equals("rod")) {
 88             return 208;
 89         } else if(boxName1.equals("furlog")) {
 90             return 66;
 91         } else {
 92             return 5280;
 93         }
 94     }
 95     /* Private instance variables */
 96     private JComboBox lengthChooser1;
 97     private JComboBox lengthChooser2;
 98     private DoubleField field1;
 99     private DoubleField field2;
100     private JButton button1;
101     private JButton button2;
102 }

 

posted on 2012-12-31 17:58  mybluecode  阅读(311)  评论(0编辑  收藏  举报