導入Java . awt . button;
導入Java . awt . frame;
導入Java . awt . gridlayout;
導入Java . awt . panel;
導入Java . awt . textfield;
導入Java . awt . event . mouse event;
導入Java . awt . event . mouse listener;
導入Java . awt . event . window event;
導入Java . awt . event . window listener;
公共類計算器{
公共靜態void main(String[] args) {
框架f =新框架(“計算器”);
final TextField TF = new TextField();
Panel p = new Panel();
f . set layout(new BorderLayout());
f.add(tf,BorderLayout。北);
f.add(p,BorderLayout。中心);
p.setLayout(new GridLayout(4,4));
按鈕壹=新建按鈕(" 1 ");
按鈕二=新建按鈕(" 2 ");
按鈕三=新建按鈕(" 3 ");
按鈕四=新建按鈕(" 4 ");
按鈕五=新建按鈕(" 5 ");
按鈕六=新建按鈕(" 6 ");
按鈕七=新建按鈕(" 7 ");
按鈕八=新建按鈕(" 8 ");
按鈕九=新建按鈕(" 9 ");
按鈕零=新按鈕(" 0 ");
Button add =新按鈕("+");
Button sub =新建按鈕("-");
Button mul =新建按鈕(" * ");
Button div =新建按鈕("/");
十進制按鈕=新按鈕(".");
final Button equal = new Button(" = ");
p.add(壹);
p.add(兩個);
p.add(三);
p.add(四);
p.add(五);
p.add(六);
p.add(七);
p.add(八);
p.add(九);
p.add(零);
p.add(添加);
p . add(sub);
p . add(mul);
p . add(div);
p.add(十進制);
p.add(相等);
final String[] ary = { " ",null," " };
NumMouseListener類實現MouseListener{
public void mouse clicked(mouse event e){
String num = ((Button)e.getSource())。getLabel()。trim();
if(ary[1] == null){
ary[0]= ary[0]+" "+num;
}否則{
ary[2]= ary[2]+" "+num;
}
TF . settext(TF . gettext()+" "+num);
}
public void mouse enter(mouse event e){ }
public void mouse exited(mouse event e){ }
public void mouse pressed(mouse event e){ }
public void mouse released(mouse event e){ }
}
one . addmouse listener(new nummouse listener());
two . addmouse listener(new nummouse listener());
three . addmouse listener(new nummouse listener());
four . addmouse listener(new nummouse listener());
five . addmouse listener(new nummouse listener());
six . addmouse listener(new nummouse listener());
seven . addmouse listener(new nummouse listener());
eight . addmouse listener(new nummouse listener());
nine . addmouse listener(new nummouse listener());
zero . addmouse listener(new nummouse listener());
類OperatotrMouseListener實現MouseListener{
public void mouse clicked(mouse event e){
if(e.getSource() == equal){
嘗試{
long result = calculate(integer . parse int(ary[0]),Integer.parseInt(ary[2]),ary[1]);
TF . settext(string . value of(result));
ary[0]= TF . gettext();
ary[1]= null;
ary[2]= " ";
} catch(異常e1) {
e 1 . printstacktrace();
}
}否則{
ary[1]=((Button)e . getsource())。get label();
if(ary[0].length()>;0){
ary[2]= " ";
}否則{
ary[0]= string . value of(TF . gettext());
}
TF . settext(" ");
}
}
private long calculate(int i,int j,String operator)拋出異常{
if(operator . equals("+"){
返回I+j;
} else if(operator . equals("-"){
返回I-j;
} else if(operator . equals(" * "){
返回I * j;
} else if(operator . equals("/"){
返回I/j;
}否則{
拋出新異常("無效運算符。(只接受+-/*);
}
}
public void mouse enter(mouse event e){ }
public void mouse exited(mouse event e){ }
public void mouse pressed(mouse event e){ }
public void mouse released(mouse event e){ }
}
add . addmouse listener(new operotrmouselistener());
mul . addmouse listener(new operotrmouselistener());
div . addmouse listener(new operotrmouselistener());
sub . addmouse listener(new operotrmouselistener());
equal . addmouse listener(new operotrmouselistener());
f . addwindowlistener(new window listener(){
public void window closing(window event e){
system . exit(0);
}
公共void window activated(window event e){ }
公共void window closed(window event e){ }
公共void window deactivated(window event e){ }
public void window identified(window event e){ }
公共void window icon ified(window event e){ }
public void window opened(window event e){ }
});
f . set visible(true);
f.setBounds(200,200,250,250);
f . validate();
}
}