编写Applet程序实现一个计算器,包括10个数字(0~9)按钮和4个运算符(加、减、乘、除)按钮,以及等号和清空两个辅助按钮,还有一个显示输入输出的文本框。试用GridLayout实现之
2012-03-06 20:03
1161 查看
import java.awt.*; import java.awt.event.*; public class Calculator extends Frame implements ActionListener{ private double a=0, b=0, sum=0; int flag=0, count=0,p=1; char mode='?'; //本次运算的符号 private TextField display = new TextField(); private Button one = new Button("1"); private Button two = new Button("2"); private Button three = new Button("3"); private Button four = new Button("4"); private Button five = new Button("5"); private Button six = new Button("6"); private Button seven = new Button("7"); private Button eight = new Button("8"); private Button nine = new Button("9"); private Button zero = new Button("0"); private Button point = new Button("."); private Button add = new Button("+"); private Button sub = new Button("-"); private Button mul = new Button("×"); private Button div = new Button("÷"); private Button result = new Button("="); private Button clr = new Button("CLR"); private Button quit = new Button("quit"); private Label label = new Label("calculator"); private class WindowCloser extends WindowAdapter{ public void windowClosing(WindowEvent we) { System.exit(0); } } //布局 private void setup() { Panel top = new Panel(); top.setLayout(new GridLayout(2,1)); top.add(label); top.add(display); Panel number = new Panel(); number.setLayout(new GridLayout(6,3)); number.add(one); number.add(four); number.add(seven); number.add(two); number.add(five); number.add(eight); number.add(three); number.add(six); number.add(nine); number.add(zero); number.add(add); number.add(sub); number.add(point); number.add(mul); number.add(div); number.add(result); number.add(clr); number.add(quit); setLayout(new BorderLayout()); add("North",top); add("South",number); } //构造方法 public Calculator() { super("Calculator"); setup(); one.addActionListener(this); two.addActionListener(this); three.addActionListener(this); four.addActionListener(this); five.addActionListener(this); six.addActionListener(this); seven.addActionListener(this); eight.addActionListener(this); nine.addActionListener(this); zero.addActionListener(this); point.addActionListener(this); add.addActionListener(this); sub.addActionListener(this); mul.addActionListener(this); div.addActionListener(this); clr.addActionListener(this); quit.addActionListener(this); result.addActionListener(this); addWindowListener(new WindowCloser()); pack(); setSize(200,222); setVisible(true); } void reset0() { a=0; b=0; count=0; sum=0; p=1; mode='?'; } void setAndDis(char c) { count=0; flag=0; a=Double.parseDouble(display.getText()); mode=c; } //说明单击按钮以后要采取的行动 public void actionPerformed(ActionEvent ae) { if(ae.getSource() == quit) System.exit(0); if(ae.getSource() == clr) { reset0(); flag=0; display.setText("0"); }else if(ae.getSource() == zero) { if(count != 0) { reset0(); } if(flag == 0) { display.setText("0"); flag=1; }else display.setText(display.getText()+"0"); } //输入0~9 if(ae.getSource() == one) { if(count != 0) { reset0(); }if(flag == 0||display.getText().equals("0")) { display.setText("1"); flag=1; }else display.setText(display.getText()+"1"); } if(ae.getSource() == two) { if(count != 0) { reset0(); } if(flag == 0||display.getText().equals("0")) { display.setText("2"); flag=1; }else display.setText(display.getText()+"2"); } if(ae.getSource() == three) { if(count != 0) { reset0(); } if(flag == 0||display.getText().equals("0")) { display.setText("3"); flag=1; }else display.setText(display.getText()+"3"); } if(ae.getSource() == four) { if(count != 0) { reset0(); } if(flag == 0||display.getText().equals("0")) { display.setText("4"); flag=1; }else display.setText(display.getText()+"4"); } if(ae.getSource() == five) { if(count != 0) { reset0(); } if(flag == 0||display.getText().equals("0")) { display.setText("5"); flag=1; }else display.setText(display.getText()+"5"); } if(ae.getSource() == six) { if(count != 0) { reset0(); } if(flag == 0||display.getText().equals("0")) { display.setText("6"); flag=1; }else display.setText(display.getText()+"6"); } if(ae.getSource() == seven) { if(count != 0) { reset0(); } if(flag == 0||display.getText().equals("0")) { display.setText("7"); flag=1; }else display.setText(display.getText()+"7"); } if(ae.getSource() == eight) { if(count != 0) { reset0(); } if(flag == 0||display.getText().equals("0")) { display.setText("8"); flag=1; }else display.setText(display.getText()+"8"); } if(ae.getSource() == nine) { if(count != 0) { reset0(); } if(flag == 0||display.getText().equals("0")) { display.setText("9"); flag=1; }else display.setText(display.getText()+"9"); } if(ae.getSource() == point) { if(flag == 1 && p != 0) { display.setText(display.getText()+"."); p=0; } } //输入+,-,×,÷ if(ae.getSource() == add) { setAndDis('+'); } if(ae.getSource() == sub) { setAndDis('-'); } if(ae.getSource() == mul) { setAndDis('×'); } if(ae.getSource() == div) { setAndDis('÷'); } if((ae.getSource() == result)&&mode != '?') { flag=0; if(count == 0) { b=Double.parseDouble(display.getText()); count=1; } sum=run(a,b,mode); a=sum; display.setText(String.valueOf(sum)); } } public double run(double a, double b, char mode) { double sum=0; if(mode == '+') sum=a+b; if(mode == '-') sum=a-b; if(mode == '×') sum=a*b; if(mode == '÷') sum=a/b; return(sum); } public static void main(String[] args) { Calculator cal = new Calculator(); } }
相关文章推荐
- 实现一个计算器,界面包括10个数字按钮(0至9)和四个运算符(加减乘除)按钮,以及等号和清空两个辅助按钮,还有一个用于显示输入输出的文本框。
- 1, 编写程序,当用户在文本框中输入内容之后,单机不同的按钮,能够把文半框中的内容粘贴到文本区中。“重置”按钮实现将文本框和文本区中的内容清空。界面上的文本区只能显示内容,不能让用户输入文本。运行结果
- 8.8编写一个程序,显示提供加法、减法、乘法的菜单,该程序只接受菜单提供的选项,程序提示用户输入两个数字......
- C#--第11周实验--任务3--设计一个窗体,窗体上有两个文本框,一个按钮,2个单选按钮--实现单击按钮后,根据单选按钮,将对应文本框中内容显示在标签。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 窗体上有两个文本框:一个文本框中最多输入字符6个;一个文本框中输入任何内容都显示*号。再添加一个按钮、2个单选按钮。实现单击按钮后,根据单选按钮,将对应文本框中内容显示在标签
- 动态描述性编程实现计算器0~9这10个数字按钮的高亮显示并按下该键
- 利用5个标签,4个文本框,2个按钮,自己设计布局实现输入三边求三角形面积。界面如下所示。三角形类的编写可以使用实验4中已经写过的三角形类,当点击“判断三边”时,若能构成三角形,在标签5上显示“可以构成三角形!”,如不能构成三角形,在标签5上显示“不能构成三
- 编写一个程序统计各个数字、空白符(包括空格符、制表符及换行符)以及其它字符出现的次数
- 2 编写一个应用程序,用户分别从两个文本框输入学生的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
- loner_li 机试题 编写一个简单的计算器实现加减乘除:输入两个数字和一个运算符号,输出结果(注意容错性)
- 编写程序包括一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容复制到标签中
- 编写一个计算器程序,要求用函数指针来实现两个浮点值的加减乘除
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。
- 编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。 程序运行效果如图:
- 编写一个程序,最多将10个donation值读入到一个double数组中。程序遇到非数字输入时将结束输入,并报告这些数字的平均值以及数组中有多少个数字大于平均值。
- 编写程序包括一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容复制到标签中
- 还有如此实现方法,没试用过,mouseEntered一个按钮的时候如何让他自动显示按钮的注释信息在一个小的注释框中??鼠标移走又小的注释框又自动消失??
- lesson 9:编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中。