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) 编辑 收藏 举报