1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
| 当我们将值转换为双精度值时,但可以说,标签 l1 具有空值(即标签为空)并且我们仍然按下这些按钮,然后它将生成 NumberFormatException execption,所以处理并打印所需的消息。 ##### ==例如== 如果我点击1然后+然后我点击-而不是其他一些数字按钮,因此这是一个无效的格式,并且当-当时被点击时标签为空因此生成了execption所以只是处理它并在标签中打印无效格式 类似地,当标签为空时,并且在这种情况下单击 = ENTER NUMBER FIRST 将显示在标签内 至此,我们结束了本次 Java AWT 教程。 #### 1.4 GIF演示 #### 1.5 附完整代码 import java.awt.*; import java.awt.event.*; class MyCalc extends WindowAdapter implements ActionListener{ Frame f; Label l1; Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b0; Button badd,bsub,bmult,bdiv,bmod,bcalc,bclr,bpts,bneg,bback; double xd; double num1,num2,check;
MyCalc(){ f= new Frame("MY CALCULATOR"); // 实例化组件 l1=new Label(); l1.setBackground(Color.LIGHT_GRAY); l1.setBounds(50,50,260,60); b1=new Button("1"); b1.setBounds(50,340,50,50); b2=new Button("2"); b2.setBounds(120,340,50,50); b3=new Button("3"); b3.setBounds(190,340,50,50); b4=new Button("4"); b4.setBounds(50,270,50,50); b5=new Button("5"); b5.setBounds(120,270,50,50); b6=new Button("6"); b6.setBounds(190,270,50,50); b7=new Button("7"); b7.setBounds(50,200,50,50); b8=new Button("8"); b8.setBounds(120,200,50,50); b9=new Button("9"); b9.setBounds(190,200,50,50); b0=new Button("0"); b0.setBounds(120,410,50,50); bneg=new Button("+/-"); bneg.setBounds(50,410,50,50); bpts=new Button("."); bpts.setBounds(190,410,50,50); bback=new Button("back"); bback.setBounds(120,130,50,50);
badd=new Button("+"); badd.setBounds(260,340,50,50); bsub=new Button("-"); bsub.setBounds(260,270,50,50); bmult=new Button("*"); bmult.setBounds(260,200,50,50); bdiv=new Button("/"); bdiv.setBounds(260,130,50,50); bmod=new Button("%"); bmod.setBounds(190,130,50,50); bcalc=new Button("="); bcalc.setBounds(245,410,65,50); bclr=new Button("CE"); bclr.setBounds(50,130,65,50); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); b0.addActionListener(this);
bpts.addActionListener(this); bneg.addActionListener(this); bback.addActionListener(this);
badd.addActionListener(this); bsub.addActionListener(this); bmult.addActionListener(this); bdiv.addActionListener(this); bmod.addActionListener(this); bcalc.addActionListener(this); bclr.addActionListener(this);
f.addWindowListener(this); //添加到框架 f.add(l1); f.add(b1); f.add(b2); f.add(b3); f.add(b4); f.add(b5);f.add(b6); f.add(b7); f.add(b8);f.add(b9);f.add(b0);
f.add(badd); f.add(bsub); f.add(bmod); f.add(bmult); f.add(bdiv); f.add(bmod);f.add(bcalc);
f.add(bclr); f.add(bpts);f.add(bneg); f.add(bback);
f.setSize(360,500); f.setLayout(null); f.setVisible(true); } //关闭窗口 public void windowClosing(WindowEvent e) { f.dispose(); }
public void actionPerformed(ActionEvent e){ String z,zt; //数字按钮 if(e.getSource()==b1){ z=zt+"1"; } if(e.getSource()==b2){ z=zt+"2"; } if(e.getSource()==b3){ z=zt+"3"; } if(e.getSource()==b4){ z=zt+"4"; } if(e.getSource()==b5){ z=zt+"5"; } if(e.getSource()==b6){ z=zt+"6"; } if(e.getSource()==b7){ z=zt+"7"; } if(e.getSource()==b8){ z=zt+"8"; } if(e.getSource()==b9){ z=zt+"9"; } if(e.getSource()==b0){ z=zt+"0"; }
if(e.getSource()==bpts){ //添加小数点 z=zt+"."; } if(e.getSource()==bneg){ //对于减 z="-"+zt; }
if(e.getSource()==bback){ // 退格用 try{ } //算术按钮 if(e.getSource()==badd){ //对应加法 try{ } z=""; } if(e.getSource()==bsub){ //对应减法 try{ } z=""; check=2; } if(e.getSource()==bmult){ //对应乘法 try{ } z=""; check=3; } if(e.getSource()==bdiv){ //对应除法 try{ } z=""; check=4; } if(e.getSource()==bmod){ //对应MOD/剩余 try{ } z=""; check=5; } //结果按钮 try{ } } //清除标签和内存 xd=0; z=""; }
} //实例化 MyCalc 对象的 main 方法 public static void main(String args[]){ new MyCalc(); }
|