java简单计算器源代码Word版
Java编写简单计算器(附源代码)

西安交通大学《Java技术与应用》大作业简单计算器的编写一、选题理由这个学期我选择《Java技术与应用》这门课(其实我的选修课已经修完了),完全是对java语言的兴趣和老师的个人魅力使然。
这门课让我学到了许多知识,了解到了java语言的基本语法、结构和特点。
由于个人觉得水平有限,并且没有队友,所以选择了较为容易的简易计算器作为我的大作业。
二、系统目标实现对代数表达式的输入、计算、输出。
三、系统分析与设计(1)计算类cal设计编写\public class cal {public static boolean check(String str)If Jigloo is being used* commercially (ie, by a corporation, company or business for any purpose* whatever) then you should purchase a license for each developer using Jigloo.* Please visit for details. Use of Jigloo implies* acceptance of these licensing terms. A COMMERCIAL LICENSE HAS NOTBEEN* PURCHASED FOR THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED LEGALLY FOR* ANY CORPORATE OR COMMERCIAL PURPOSE.*/public class NewJFrame extends {》private JTextField jTextField1;private JButton jButton1;private JButton jButton15;private JButton jButton16;private JButton jButton21;private JButton jButton20;private JButton jButton19;private JButton jButton18;private JButton jButton17;private JButton jButton14;?private JButton jButton13;private JButton jButton12;private JButton jButton11;private JButton jButton10;private JButton jButton9;private JButton jButton8;private JButton jButton7;private JButton jButton5;private JButton jButton4;private JButton jButton3;&private JButton jButton2;/*** Auto-generated main method to display this JFrame*/public static void main(String[] args) {(new Runnable() {public void run() {NewJFrame inst = new NewJFrame();(null);\(true);}});}public NewJFrame() {super();initGUI();`}private void initGUI() {try {setDefaultCloseOperation;getContentPane().setLayout(null);("Mycalculation");{jTextField1 = new JTextField();getContentPane().add(jTextField1, "North");)(new 72));(0, 0, 460, 72);(new "Microsoft YaHei UI", 1,16));}{jButton1 = new JButton();getContentPane().add(jButton1);("1");'(25, 87, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton2);("2");(120, 87, 82, 48);(new "Microsoft YaHei UI", 0, 18));)(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="dd(jButton3);("3");(214, 87, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {|public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton4);("4");(25, 142, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="`+ evt);dd(jButton5);("5");(122, 142, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton7);!("6");(215, 142, 82, 48);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton8);("7");(26, 201, 82, 50);¥(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="dd(jButton9);("8");(122, 201, 82, 50);(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {|public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton10);("9");(215, 201, 82, 50);jButton10.setFont(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) { @", event="+ evt);dd(jButton11);("0");(26, 269, 82, 48);jButton11.setFont(new "Microsoft YaHei UI", 0, 18));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="~+ evt);dd(jButton12);("+");(309, 147, 64, 45);jButton12.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);—dd(jButton13);("-");(384, 148, 64, 44);jButton13.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton14);…("*");(309, 208, 64, 44);jButton14.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton15);("/");!(384, 208, 64, 44);jButton15.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton16);("=");(386, 271, 64, 44);/jButton16.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton17);("^");(311, 271, 64, 44);jButton17\.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton18);("C");(215, 271, 82, 48);jButton18.setFont(new "Microsoft YaHei UI", 0, 18));…(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton19);(")");(384, 93, 64, 44);jButton19.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {~public void actionPerformed(ActionEvent evt) {", event="+ evt);dd(jButton20);("(");(308, 93, 64, 44);jButton20.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) { !", event="+ evt);dd(jButton21);(".");(122, 270, 82, 48);jButton21.setFont(new "Microsoft YaHei UI", 0, 28));(new ActionListener() {public void actionPerformed(ActionEvent evt) {", event="》+ evt);||(i)>=48&&(i)<=57))continue;else{(null, "输入错误!");return bool;}}||(i)!=')')&&(i+1)=='(')||(i)==')'&&(i+1)!='('||(i+1)=='.'))){}.else{(null, "输入错误!");return bool;}}elsebreak;i++;}if(num1==num2){bool=true;}:else (null, "输入错误!");return bool;}||(i)=='0'||(i)=='1'||(i)=='2'||(i)=='3'||(i)=='4'||(i)=='5'||(i)=='6'||(i)=='7'||(i)=='8'||(i)=='9'){str2=str2+(i);continue;}else{·if(str2!=""){//如果str2不为空,既之前有扫描到数字,则进行压栈(str2));//str2还原str2="";}//比较当前元素(其实为一操作符)与操作符栈中的栈顶元素的优先级for(;;){//如果当前元素的优先级低于或等于栈顶元素的优先级if(compare(i),())){*float temp;//做如下操作switch()){//栈顶元素为+,弹出数字栈的前两个元素,进行运算case '+':temp=()+();(temp);//弹出操作符栈中用过的元素();break;.//栈顶元素为-,弹出数字栈的前两个元素,进行运算case '-':temp=()+();(temp);//弹出操作符栈中用过的元素();break;//栈顶元素为*,弹出数字栈的前两个元素,进行运算case '*':temp=()*();;(temp);//弹出操作符栈中用过的元素();break;//栈顶元素为/,弹出数字栈的前两个元素,进行运算case '/':temp=1/()*();(temp);//弹出操作符栈中用过的元素();|break;//栈顶元素为^,弹出数字栈的前两个元素,进行运算case '^':float n=();float e=();temp=(float) (e,n);// (temp);//弹出操作符栈中用过的元素();break;~//栈顶元素为(,不进行任何运算case '('://只有当当前元素为“)”时,才弹出“(”,否则,将当前元素压栈,//并进行下一次循环,即扫描字符串的下一个元素if(i)==')'){//弹出操作符栈中用过的元素();continue loop;}else{¥(i));continue loop;}}}else{// “)” 不入栈if(i)!=')')(i));break;}}}}//返回栈顶元素,即算式结果return ();}//比较优先级,判断b的优先级是否大于等于a的优先级public static boolean compare(char a,char b){boolean bool=false;if(a=='#')bool=true;elseif(a=='$'&&b!='#')bool=true;elseif(a==')'&&b!='#'&&b!='$')bool=true;elseif((a=='+'||a=='-')&&(b=='+'||b=='-'||b=='*'||b=='/'||b=='^'||b=='('))bool=true;elseif((a=='*'||a=='/')&&(b=='*'||b=='/'||b=='^'||b=='('))bool=true;elseif((a=='^')&&(b=='^'||b=='('))bool=true;elseif(a=='('&&b=='(')bool=true;return bool;} }?。
java 简单实用计算器代码

//JSQ.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;public class JSQ{public static void main(String args[]){new MyJSQ("My计算器");}}class MyJSQ extends Frame implements ActionListener{JButton bOption,bNumber;TextField Tresult;int flag=0,perflag;//perflag表示单击了那一个运算符,1表示"+",2表示"-",3表示"*",4表示"/"double op1=0.0,op2=0.0;//操作数StringBuffer str=new StringBuffer();//显示屏所显示的字符串MyJSQ(String s){setTitle(s);Panel conPanel=new Panel();conPanel.setLayout(new BorderLayout());//设置显示屏Panel ptop=new Panel();Tresult=new TextField("0",20);Tresult.setEditable(false);//不可编辑性ptop.add(Tresult);conPanel.add(ptop,BorderLayout.NORTH);//总按键面板Panel pButton=new Panel();Cursor cs=Cursor.getPredefinedCursor(Cursor.HAND_CURSOR);setCursor(cs);pButton.setLayout(new BorderLayout());//操作面板1Panel pUp=new Panel();pUp.setLayout(new GridLayout(2,5,1,1));//(行数,列数,水平间距,垂直间距)bOption=new JButton("x^3");bOption.setForeground(Color.gray);bOption.setMargin(new Insets(3,1,3,5));//setMargin()设置按钮边框和标签之间的空白。
《java简易计算器》Word文档

//只可以做简易的加减乘除运算//每次运算结束之后必须按一下清除才可以进行第二次运算import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.Event;public class Calculator {Button[] bt = new Button[10];//数字键Button bp,bj,bc,bu,bq,be;//分别对应的是加,减,乘,除,清除,等于public String numCache="";//缓存拿到的值,这个地方如果不赋初值的话会报错,就是必须在第一次使用前按下清除键public int num1,num2;//参加运算的值public String showNum="";//文本框显示的值public String operator="";//显示的运算符TextField tf;//文本框public int result;public static void main(String[] args) {new Calculator().setFrame();}/*frame*/public void setFrame() {Frame mFrame = new Frame("java简易计算器");//窗口Panel p1 = new Panel();//文本框的容器tf = new TextField(30);//文本框p1.add(tf);//添加文本框进入容器mFrame.add(p1,BorderLayout.NORTH);//将p1放到mFrame的北区域Panel p2 = new Panel();//存放button的容器p2.setLayout(new GridLayout(4,4));//放置button的p2容器,默认添加到center区//添加按钮bt[0] = new Button("0");bt[1] = new Button("1");bt[2] = new Button("2");bt[3] = new Button("3");bt[4] = new Button("4");bt[5] = new Button("5");bt[6] = new Button("6");bt[7] = new Button("7");bt[8] = new Button("8");bt[9] = new Button("9");bp = new Button("+");bj = new Button("-");bc= new Button("*");bu= new Button("/");bq= new Button("清除");be= new Button("=");//将button添加进panelfor(int i=0;i<10;i++) {p2.add(bt[i]);}p2.add(bp);p2.add(bj);p2.add(bc);p2.add(bu);p2.add(bq);p2.add(be);bp.addActionListener(new Monitor());bj.addActionListener(new Monitor());bc.addActionListener(new Monitor());bu.addActionListener(new Monitor());bq.addActionListener(new Monitor());be.addActionListener(new Monitor());mFrame.add(p2);mFrame.pack();//注册监听器类for(int i=0;i<10;i++) {bt[i].addActionListener(new Monitor());}mFrame.setBackground(Color.GRAY);//窗口的背景颜色mFrame.setVisible(true);//显示窗口mFrame.addWindowListener(new WindowAdapter(){//窗口的关闭事件public void windowClosing(WindowEvent e) {System.exit(-1);}});}//frame构造方法结束,第9行开始//事件监听class Monitor implements ActionListener {public void actionPerformed(ActionEvent e) {Button b = (Button)e.getSource();String str = b.getActionCommand();//如果按下的是运算符if(str.equals("+")||str.equals("-")||str.equals("*")||str.equals("/")) {//按下的是运算符if((numCache)!="") {num1 = Integer.parseInt(numCache);}operator = str;tf.setText(operator);numCache = "";showNum = "";//如果按下的是清除键}else if(str.equals("清除")) {showNum = "";numCache="";tf.setText("0.");//如果按下的是等号}else if(str.equals("=")) {num2 = Integer.parseInt(numCache);if(operator.equals("+")) {result = num1+num2;}else if(operator.equals("-")) {result = num1-num2;}else if(operator.equals("*")) {result = num1*num2;}else{if(num2==0) {tf.setText("被除数不能为零");return;}result = num1/num2;}tf.setText(result+"");num1 = 0;num2 = 0;result = 0;}else {//如果按下的是数字showNum = showNum+b.getActionCommand();numCache = numCache+b.getActionCommand();tf.setText(showNum);}}}}//bug报告:(注:素材和资料部分来自网络,供参考。
JAVA简易计算器程序源代码

JAVA简易计算器程序源代码package myText;import java.awt.*;import javax.swing.*;import java.awt.event.*;import javax.swing.border.*;public class Calculator extends JFrame implements ActionListener{ private JPanel Panel1=new JPanel();private JPanel Panel2=new JPanel();private JTextField tfResult=new JTextField(25);private JLabel label=new JLabel("计算结果:");private String recentOperation=null;private String recentNum=null;private boolean isNew=true;public void addButton(Container c,String s){JButton b=new JButton(s);b.setFont(new java.awt.Font("SansSerif",0,12));b.setForeground(Color.red);b.setBorder(BorderFactory.createRaisedBevelBorder());c.add(b);b.addActionListener(this);}//end public void addButton(Container c,String s)public void actionPerformed(ActionEvent e){String s=e.getActionCommand();if(s.charAt(0)>='0'&&s.charAt(0)<='9'){if(!isNew){tfResult.setText(tfResult.getText()+s);}//end if(!isNew)else{tfResult.setText(s);}//end elseisNew=false;}//end if(s.charAt(0)>='0'&&s.charAt(0)<='9') else if(s.equals(".")){if(tfResult.getText().indexOf(".")!=-1)return;if(!isNew&&tfResult.getText()!=""){tfResult.setText(tfResult.getText()+".");}//end ifelse{tfResult.setText("0.");}//end elseisNew=false;}//end if(s.equals("."))else if(s.equals("=")){equalaction(e);}//end if(s.equals("="))else{if((tfResult.getText()).equals("")){return;}//endif((tfResult.getText()).equals(""))if(recentOperation!=null){equalaction(e);}//end if(recentOperation!=null) recentOperation=s;recentNum=tfResult.getText();isNew=true;}//end else}//end public void actionPerformed(ActionEvent e) void equalaction(ActionEvent e){if(recentOperation==null||recentNum==null||tfResult.getTex t().equals("")){ return;}//end if()double last=0,now=0;try{last=Double.parseDouble(recentNum);now=Double.parseDouble(tfResult.getText());}//end trycatch(NumberFormatException ne){recentOperation=null;recentNum=null;tfResult.setText("数据输入不合法");System.out.println("数据输入不合法");isNew=true;return;}//end catch(NumberFormatException ne)if(recentOperation.equals("+")){last+=now;}//end if(recentOperation.equals("+"))if(recentOperation.equals("-")){last-=now;}//endif(recentOperation.equals("-"))if(recentOperation.equals("*")){last*=now;}//endif(recentOperation.equals("*"))if(recentOperation.equals("/")){last/=now;}//endif(recentOperation.equals("/"))tfResult.setText(""+last);recentNum=tfResult.getText();recentOperation=null;isNew=true;}//end void equalaction(ActionEvent e)public Calculator(){tfResult.setBorder(BorderFactory.createLoweredBevelBorder ());tfResult.setEditable(false);tfResult.setText("0");tfResult.setHorizontalAlignment(SwingConstants.RIGHT);////本java源代码由839682048整理修改//////Panel1.add(label,FlowLayout.LEFT);Panel1.add(tfResult);////本java源代码由839682048整理修改///Panel2.setLayout(new GridLayout(4,4,2,2));String buttons="789/456*123-0.=+";for(int i=0;i<buttons.length();i++){< p="">addButton(Panel2,buttons.substring(i,i+1));}//end for()//本java源代码由839682048整理修改///this.getContentPane().add(Panel1,"North");this.getContentPane().add(Panel2,"Center");this.setResizable(false);this.setTitle("计算器");this.addWindowListener(newjava.awt.event.WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});}//end public Calculator1()public static void main(String[]args){Calculator mf=new Calculator();mf.setBounds(200,200,400,400);mf.show();}//end main()}//end public class Calculator1extends JFrame implements ActionListener</buttons.length();i++){<>。
java计算器源代码Word文档

package计算器;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Font;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter;import java.awt.event.KeyEvent;import java.math.BigDecimal;import javax.swing.BorderFactory;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;import javax.swing.border.BevelBorder;import javax.swing.text.BadLocationException;public class Counter1 extends JFrame implements ActionListener { public static final int DEF_DIV_SCALE = 10; //默认的精度private JMenuBar jmBar = new JMenuBar(); // 菜单条private JMenu edit = new JMenu("编辑(E)");private JMenu find = new JMenu("查看(V)");private JMenu help = new JMenu("帮助(H)");// 创建JPanel便于管理private JPanel panTxt = new JPanel();private JPanel panBack = new JPanel();private JPanel panMen = new JPanel();private JPanel panNum = new JPanel();// 创建文本域private JTextField txt = new JTextField();// 创建文本标签private JLabel jlm = new JLabel();private boolean flag = false; // 是否可以消除文本private double a = 0; // 数字a的值private double b = 0; // 数字b的值private double result = 0; // 两个数字运算的结果private String sign = ""; // 标记运算法则private double m = 0; // 暂时储存数据// 创建按钮private NewButton jbBack = new NewButton("Backspace", Color.RED);private NewButton jbCE = new NewButton("CE", Color.RED);private NewButton jbC = new NewButton("C", Color.RED);private NewButton jbMC = new NewButton("MC", Color.RED);private NewButton jbMR = new NewButton("MR", Color.RED);private NewButton jbMS = new NewButton("MS", Color.RED);private NewButton jbM = new NewButton("M+", Color.RED);public Counter1() {setSize(260, 260);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);setLocationRelativeTo(null);setLayout(null);setJMenuBar(jmBar);setTitle("计算器");setResizable(false);init();// Container contentPane = getContentPane();// Controller c = new Controller(this);// contentPane.addKeyListener(c);}private void init() {// 设置第一个JPanel里面的内容panTxt.setSize(230, 20);panTxt.setLocation(15, 5);// panTxt.setBorder(BorderFactory.createLineBorder(Color.RED));panTxt.setLayout(new BorderLayout()); // 设置布局管理器txt.setHorizontalAlignment(JTextField.RIGHT); // 使光标定位在右边txt.setBorder(BorderFactory.createLoweredBevelBorder()); // 设置边框凹下去txt.setEditable(false); // 设置是否可以编辑txt.setBackground(Color.WHITE);// txt.setEnabled(true); //设置是否激活// txt.setFocusable(false); // 设置是否可以获得焦点(显示光标)txt.setText("0");add(panTxt);panTxt.add(txt);Controller c = new Controller(this);txt.addKeyListener(c);// 设置第二个JPanel里面的内容panBack.setSize(190, 25);panBack.setLocation(52, 35);// 画出边框便于查看// panBack.setBorder(BorderFactory.createLineBorder(Color.RED)); GridLayout layPanBack = new GridLayout(); // 创建布局管理器layPanBack.setHgap(5); // 设置布局管理器的边距panBack.setLayout(layPanBack); // 设置布局管理器// 添加按钮jbBack.setFont(new Font("宋体", 0, 12));panBack.add(jbBack);panBack.add(jbCE);panBack.add(jbC);add(panBack);// 设置第三个JPanel里面的内容panMen.setSize(40, 140);panMen.setLocation(5, 65);GridLayout layPanMen = new GridLayout(4, 1); // 创建布局管理器layPanMen.setVgap(5); // 设置布局管理器的边距panMen.setLayout(layPanMen);// panMen.setBorder(BorderFactory.createLineBorder(Color.RED)); panMen.add(jbMC);panMen.add(jbMR);panMen.add(jbMS);panMen.add(jbM);add(panMen);// 设置第四个JPanel里面的内容panNum.setSize(200, 140);panNum.setLocation(50, 65);// panNum.setBorder(BorderFactory.createLineBorder(Color.RED)); add(panNum);GridLayout layPanNum = new GridLayout(4, 5); // 创建布局管理器panNum.setLayout(layPanNum);newButtonNum();// 添加菜单项jmBar.add(edit);jmBar.add(find);jmBar.add(help);// 设置文本标签的属性和添加文本标签jlm.setBorder(BorderFactory.createBevelBorder(1));jlm.setSize(25, 25);jlm.setLocation(15, 35);add(jlm);}public void newButtonNum() {NewButton jb7 = new NewButton("7", Color.BLUE);NewButton jb8 = new NewButton("8", Color.BLUE);NewButton jb9 = new NewButton("9", Color.BLUE);NewButton jbDivide = new NewButton("/", Color.RED);NewButton jbSqrt = new NewButton("sqrt", Color.BLUE);NewButton jb4 = new NewButton("4", Color.BLUE);NewButton jb5 = new NewButton("5", Color.BLUE);NewButton jb6 = new NewButton("6", Color.BLUE);NewButton jbRide = new NewButton("*", Color.RED);NewButton jbPer = new NewButton("%", Color.BLUE);NewButton jb1 = new NewButton("1", Color.BLUE);NewButton jb2 = new NewButton("2", Color.BLUE);NewButton jb3 = new NewButton("3", Color.BLUE);NewButton jbCut = new NewButton("-", Color.RED);NewButton jbReciprocal = new NewButton("1/x", Color.BLUE);NewButton jb0 = new NewButton("0", Color.BLUE);NewButton jbMinus = new NewButton("+/-", Color.BLUE);NewButton jbDot = new NewButton(".", Color.BLUE);NewButton jbAdd = new NewButton("+", Color.RED);NewButton jbEquals = new NewButton("=", Color.RED);panNum.add(jb7);panNum.add(jb8);panNum.add(jb9);panNum.add(jbDivide);panNum.add(jbSqrt);panNum.add(jb4);panNum.add(jb5);panNum.add(jb6);panNum.add(jbRide);panNum.add(jbPer);panNum.add(jb1);panNum.add(jb2);panNum.add(jb3);panNum.add(jbCut);panNum.add(jbReciprocal);panNum.add(jb0);panNum.add(jbMinus);panNum.add(jbDot);panNum.add(jbAdd);panNum.add(jbEquals);}public static void main(String[] args) {try {UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // 设置和win7的布局一样} catch (ClassNotFoundException e) {e.printStackTrace();} catch (InstantiationException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();} catch (UnsupportedLookAndFeelException e) {e.printStackTrace();}new Counter1().setVisible(true);}private class NewButton extends JButton {public NewButton(String s, Color c) {super(s);// setBorder(BorderFactory.createBevelBorder(BevelBorder.RAISED));setBorder(BorderFactory.createEmptyBorder());setForeground(c);setFocusable(false); // 设置是否可以获得焦点(显示光标)addActionListener(Counter1.this);}}// 实现监听public void actionPerformed(ActionEvent e) {if (e.getActionCommand() == "+") {a = Double.parseDouble(txt.getText());sign = "+";flag = true;} else if (e.getActionCommand() == "-") {a = Double.parseDouble(txt.getText());sign = "-";flag = true;} else if (e.getActionCommand() == "*") {a = Double.parseDouble(txt.getText());sign = "*";flag = true;} else if (e.getActionCommand() == "/") {a = Double.parseDouble(txt.getText());sign = "/";flag = true;} else if (e.getActionCommand() == "=") {try {b = Double.parseDouble(txt.getText());} catch (NumberFormatException nfe) {b = 0;}try {if (sign == "+") {result = doubleAdd(a, b);} else if (sign == "-") {result = doubleSub(a, b);} else if (sign == "*") {result = doubleMul(a, b);} else if (sign == "/" && b != 0) {result = doubleDiv(a, b, 15);} else {result = b;}} catch (NumberFormatException nfe) {result = 0;}a = result;if (sign == "/" && b == 0) {txt.setText("0");} else {txt.setText(result + "");}flag = true;} else if (e.getActionCommand() == "C") {a = 0;result = 0;sign = "";txt.setText("0");} else if (e.getActionCommand() == "CE") {txt.setText("0");} else if (e.getActionCommand() == "Backspace") {try {if (txt.getText().length() > 1) {txt.setText(txt.getText(0, txt.getText().length() - 1));} else {txt.setText("0");}} catch (BadLocationException e1) {txt.setText("0");}} else if (e.getActionCommand() == "sqrt") {a = Double.parseDouble(txt.getText());result = Math.sqrt(a);a = result;txt.setText(result + "");flag = true;} else if (e.getActionCommand() == "%") {b = Double.parseDouble(txt.getText());result = doubleMul(doubleDiv(b, 100), a);txt.setText(result + "");flag = true;} else if (e.getActionCommand() == "1/x") {a = Double.parseDouble(txt.getText());result = 1 / a;a = result;txt.setText(result + "");flag = true;} else if (e.getActionCommand() == "+/-") {txt.setText("" + (-Double.parseDouble(txt.getText()))); } else if (e.getActionCommand() == "MC") {m = 0;jlm.setText("");} else if (e.getActionCommand() == "MR") {txt.setText(m + "");} else if (e.getActionCommand() == "MS") {m = Double.parseDouble(txt.getText());jlm.setText(" M");flag = true;} else if (e.getActionCommand() == "M+") {m += Double.parseDouble(txt.getText());flag = true;} else {boolean isDoc = false;for (int i = 0; i < txt.getText().length(); i++) { if (txt.getText().charAt(i) == '.') {isDoc = true;}}if (!isDoc || e.getActionCommand() != ".") {if (flag) {txt.setText("");flag = false;}if (txt.getText().equals("0") && e.getActionCommand() != ".") { txt.setText("");}txt.setText(txt.getText() + e.getActionCommand());}}}// 实现键盘监听public void keyAction(KeyEvent e) {if (e.getKeyChar() == '+') {a = Double.parseDouble(txt.getText());sign = "+";flag = true;} else if (e.getKeyChar() == '-') {a = Double.parseDouble(txt.getText());sign = "-";flag = true;} else if (e.getKeyChar() == '*') {a = Double.parseDouble(txt.getText());sign = "*";flag = true;} else if (e.getKeyChar() == '/') {a = Double.parseDouble(txt.getText());sign = "/";flag = true;} else if (e.getKeyChar() == '=') {try {b = Double.parseDouble(txt.getText());} catch (NumberFormatException nfe) {b = 0;}try {if (sign == "+") {result = doubleAdd(a, b);} else if (sign == "-") {result = doubleSub(a, b);} else if (sign == "*") {result = doubleMul(a, b);} else if (sign == "/") {if (b == 0) {txt.setText("除数不能为0");} else {result = doubleDiv(a, b, 15);}} else {result = b;}} catch (NumberFormatException nfe) {result = 0;}a = result;if (sign == "/" && b == 0) {txt.setText("0");} else {txt.setText(result + "");}flag = true;} else if (e.getKeyChar() == 'c' || e.getKeyChar() == 'C') {a = 0;result = 0;sign = "";txt.setText("0");} else if (e.getKeyCode() == KeyEvent.VK_BACK_SPACE) {try {if (txt.getText().length() > 1) {txt.setText(txt.getText(0, txt.getText().length() - 1));} else {txt.setText("0");}} catch (BadLocationException e1) {txt.setText("0");}} else if (e.getKeyChar() == '%') {b = Double.parseDouble(txt.getText());result = doubleMul(doubleDiv(b, 100), a);txt.setText(result + "");flag = true;} else {if (e.getKeyChar() >= 0x30 && e.getKeyChar() <= 0x39|| e.getKeyChar() == '.') {boolean isDoc = false;for (int i = 0; i < txt.getText().length(); i++) {if (txt.getText().charAt(i) == '.') {isDoc = true;}}if (!isDoc || e.getKeyChar() != '.') {if (flag) {txt.setText("");flag = false;}if (txt.getText().equals("0") && e.getKeyChar() != '.') {txt.setText("");}txt.setText(txt.getText() + e.getKeyChar());}}}}private class Controller extends KeyAdapter {private Counter1 frame;public Controller(Counter1 frame) {this.frame = frame;}public void keyPressed(KeyEvent e) {frame.keyAction(e);}}// 提供相对精确的加法运算public static double doubleAdd(double d1, double d2) {BigDecimal bd1 = new BigDecimal(Double.toString(d1));BigDecimal bd2 = new BigDecimal(Double.toString(d2));return bd1.add(bd2).doubleValue();}// 提供相对精确的减法运算public static double doubleSub(double d1, double d2) {BigDecimal bd1 = new BigDecimal(Double.toString(d1));BigDecimal bd2 = new BigDecimal(Double.toString(d2));return bd1.subtract(bd2).doubleValue();}// 提供相对精确的乘法运算public static double doubleMul(double d1, double d2) {BigDecimal bd1 = new BigDecimal(Double.toString(d1));BigDecimal bd2 = new BigDecimal(Double.toString(d2));return bd1.multiply(bd2).doubleValue();}// 提供相对精确的除法运算,当发生除不尽的情况时,精确到小数点以后10位,以后的数字四舍五入。
JAVA计算器代码6页word文档

import java.awt.*;import java.awt.event.*;public class Cal {public static void main(String[] args) {CalFrame f = new CalFrame();class CalFrame extends Frame {double d1, d2;int op = -1;TextField tf;CalPanelL p1;CalPanelR p2;// ConstructorCalFrame() {super("Small Calculator");setLayout(new FlowLayout(FlowLayout.CENTER,8,10));setBackground(new Color(100,150,150));setForeground(Color.white);setResizable(false);setSize(300,200);tf = new TextField(22);tf.setEditable(false);tf.setBackground(new Color(108,118,103));tf.setForeground(Color.white);tf.setFont(new Font("Arial",Font.BOLD,16));add(tf);p1 = new CalPanelL();p2 = new CalPanelR();add(p1);add(p2);setVisible(true);addWindowListener(new Wclose());// inner class:CalButtonclass CalButton extends Button {CalButton(String s){super(s);setBackground(Color.gray);// inner class: CalPanelLclass CalPanelL extends Panel {CalButton b0, b1, b2, b3,b4, b5, b6, b7,b8, b9, bPN, bPoint;CalPanelL() {setLayout(new GridLayout(4,3));setFont(new Font("TimesRoman",Font.BOLD,16));b0 = new CalButton("0");b1 = new CalButton("1");b2 = new CalButton("2");b3 = new CalButton("3");b4 = new CalButton("4");b5 = new CalButton("5");b6 = new CalButton("6");b7 = new CalButton("7");b8 = new CalButton("8");b9 = new CalButton("9");bPN = new CalButton("+/-");bPoint = new CalButton(".");// 加入按钮add(b7); b7.addActionListener(new PressB7());add(b8); b8.addActionListener(new PressB8());add(b9); b9.addActionListener(new PressB9());add(b4); b4.addActionListener(new PressB4());add(b5); b5.addActionListener(new PressB5());add(b6); b6.addActionListener(new PressB6());add(b1); b1.addActionListener(new PressB1());add(b2); b2.addActionListener(new PressB2());add(b3); b3.addActionListener(new PressB3());add(b0); b0.addActionListener(new PressB0());add(bPN); bPN.addActionListener(new PressBPN()); ;add(bPoint); bPoint.addActionListener(new PressBPoint()); class CalPanelR extends Panel {CalButton bAdd, bSub, bMul, bDiv,bSqrt, bSin, bCos, bYx,bLn, bEqual, bCE, bBack;CalPanelR() {setLayout(new GridLayout(4,3));setFont(new Font("TimesRoman",Font.BOLD,16));bAdd = new CalButton("+");bSub = new CalButton("-");bMul = new CalButton("*");bDiv = new CalButton("/");bSqrt = new CalButton("sqrt");bSin = new CalButton("sin");bCos = new CalButton("cos");bYx = new CalButton("y^x");bLn = new CalButton("ln");bEqual = new CalButton("=");bCE = new CalButton("CE");bBack = new CalButton("<-");add(bDiv); bDiv.addActionListener(new PressBDiv());add(bSqrt); bSqrt.addActionListener(new PressBSqrt());add(bLn); bLn.addActionListener(new PressBLn());add(bMul); bMul.addActionListener(new PressBMul());add(bSin); bSin.addActionListener(new PressBSin());add(bBack); bBack.addActionListener(new PressBBack());add(bSub); bSub.addActionListener(new PressBSub());add(bCos); bCos.addActionListener(new PressBCos());add(bCE); bCE.addActionListener(new PressBCE());add(bAdd); bAdd.addActionListener(new PressBAdd());add(bYx); bYx.addActionListener(new PressBYx());add(bEqual); bEqual.addActionListener(new PressBEqual()); class PressBAdd implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 0;tf.setText("");} catch(Exception ee) {}class PressBSub implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 1;tf.setText("");} catch(Exception ee) {}class PressBMul implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 2;tf.setText("");} catch(Exception ee) {}class PressBDiv implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 3;tf.setText("");} catch(Exception ee) {}class PressBYx implements ActionListener {public void actionPerformed(ActionEvent e) {try {d1 = Double.parseDouble(tf.getText());op = 4;tf.setText("");} catch(Exception ee) {}class PressBEqual implements ActionListener { public void actionPerformed(ActionEvent e) {try {double result = 0;d2 = Double.parseDouble(tf.getText());switch(op) {case 0:result = d1 + d2;break;case 1:result = d1 - d2;break;case 2:result = d1 * d2;break;case 3:result = d1 / d2;break;case 4:result = Math.pow(d1,d2);break;default:tf.setText(String.valueOf(result));} catch(Exception ee) {}class PressBSqrt implements ActionListener { public void actionPerformed(ActionEvent e) {try {double x = Double.parseDouble(tf.getText());double y;y = Math.sqrt(x);tf.setText(y+"");} catch(Exception ee) {}class PressBLn implements ActionListener { public void actionPerformed(ActionEvent e) {try {double x = Double.parseDouble(tf.getText());double y;y = Math.log(x);tf.setText(y+"");} catch(Exception ee) {}class PressBSin implements ActionListener {public void actionPerformed(ActionEvent e) {try {double x = Double.parseDouble(tf.getText());double y;y = Math.sin(x);tf.setText(y+"");} catch(Exception ee) {}class PressBCos implements ActionListener {public void actionPerformed(ActionEvent e) {try {double x = Double.parseDouble(tf.getText());double y;y = Math.cos(x);tf.setText(y+"");} catch(Exception ee) {}class PressBBack implements ActionListener {public void actionPerformed(ActionEvent e) {try {String text = tf.getText();text = text.substring(0,text.length()-1);tf.setText(text);} catch(Exception ee) {}class PressBCE implements ActionListener {public void actionPerformed(ActionEvent e) {tf.setText("");class PressBPN implements ActionListener {public void actionPerformed(ActionEvent e) {try {String text = tf.getText();if (text != "") {if(text.charAt(0) == '-')tf.setText(text.substring(1));else if(text.charAt(0) >= '0' && text.charAt(0) <= '9')tf.setText("-"+text.substring(0));else if(text.charAt(0) == '.')tf.setText("-0"+text.substring(0));} catch(Exception ee) { }class PressBPoint implements ActionListener {public void actionPerformed(ActionEvent e) {String text = tf.getText();if(stIndexOf(".") == -1)tf.setText(text+".");class PressB0 implements ActionListener {public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"0");class PressB1 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"1");class PressB2 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"2");class PressB3 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"3");class PressB4 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"4");class PressB5 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"5");class PressB6 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"6");class PressB7 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"7");class PressB8 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"8");class PressB9 implements ActionListener { public void actionPerformed(ActionEvent e) {String text = tf.getText();tf.setText(text+"9");// class: Wcloseclass Wclose extends WindowAdapter {public void windowClosing(WindowEvent e) { System.exit(0);。
java简单计算器--代码

}
}
if(act.equals("sqrt")){try{float num=(float)Math.sqrt(Float.parseFloat(t.getText()));
t.setText(String.valueOf(num));can=true;return;
JOptionPane.ERROR_MESSAGE);return;}
}
}
public float cacu(float a,char c,float b){
float sum;
switch(c){
case '+':sum=a+b;break;
case '-':sum=a-b;break;
t.setText(String.valueOf(num));can=true;return;
}catch(NumberFormatException e1){JOptionPane.showMessageDialog(null, "输入格式错误!", "警告!",
JOptionPane.ERROR_MESSAGE);return;}
p1.add(backButton);
p1.add(clearButton);
backButton.addActionListener(this);
clearButton.addActionListener(this);
p2.add(t);
p2.add(p1);
p2.setBackground(Color.black);
JAVA编写的计算器源代码(word文档良心出品)

package jsq;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.UIManager;public class Test implements ActionListener {/****/JFrame f = new JFrame();JTextField tf = new JTextField("0.");JMenuBar bar=new JMenuBar();JMenu menuEdit=new JMenu("编辑(E)");JMenu menuView=new JMenu("查看(V)");JMenu menuHelp=new JMenu("帮助(H)");JMenuItem menuEditCopy=new JMenuItem("复制(C)");JMenuItem menuEditPaste=new JMenuItem("粘贴(V)");JMenuItem menuHelpAbout = new JMenuItem("关于计算器(A)");JPanel panel0 = new JPanel();JPanel panel2 = new JPanel();JPanel panel = new JPanel();JPanel panel3 = new JPanel();JPanel panel4 = new JPanel();JPanel panel5 = new JPanel();JButton btBk = new JButton(" Backspace"); JButton btCe = new JButton("Ce");JButton btCl = new JButton("C");JButton bt7 = new JButton("7");JButton bt8 = new JButton("8");JButton bt9 = new JButton("9");JButton btDiv = new JButton("/");JButton btSqrt = new JButton("sqrt");JButton bt4 = new JButton("4");JButton bt5 = new JButton("5");JButton bt6 = new JButton("6");JButton btMult = new JButton("*"); JButton btMol = new JButton(" % ");JButton bt1 = new JButton("1");JButton bt2 = new JButton("2");JButton bt3 = new JButton("3");JButton btMinu = new JButton("-"); JButton btCoun = new JButton(" 1/x");JButton bt0 = new JButton("0");JButton btPoint = new JButton("."); JButton btEqual = new JButton("="); JButton btAdd = new JButton("+");JButton btSign = new JButton(" +/-");/***@param args*/public void init(){f.add(panel0);f.add(tf,"North");f.setJMenuBar(bar);bar.add(menuEdit);bar.add(menuView);bar.add(menuHelp);menuEdit.add(menuEditCopy);menuEdit.add(menuEditPaste);menuHelp.add(menuHelpAbout);tf.setEditable(false);//不可编辑tf.setHorizontalAlignment(JTextField.RIGHT);//从右侧输入数据panel0.add(panel2);panel0.add(panel);panel0.add(panel3);panel0.add(panel4);panel0.add(panel5);panel2.setLayout(new GridLayout(1,4));panel2.add(btBk);panel2.add(btCe);panel2.add(btCl);panel.setLayout(new GridLayout(1,5));panel.add(bt7);panel.add(bt8);panel.add(bt9);panel.add(btDiv);panel.add(btSqrt);//根号panel3.setLayout(new GridLayout(1,5));panel3.add(bt4);panel3.add(bt5);panel3.add(bt6);panel3.add(btMult);panel3.add(btMol);//百分号panel4.setLayout(new GridLayout(1,5));panel4.add(bt1);panel4.add(bt2);panel4.add(bt3);panel4.add(btMinu);panel4.add(btCoun);//倒数panel5.setLayout(new GridLayout(1,5));panel5.add(bt0);panel5.add(btPoint);panel5.add(btAdd);panel5.add(btEqual);panel5.add(btSign);//正负符号btBk.setForeground(new Color(255, 0, 0)); btCe.setForeground(new Color(255, 0, 0)); btCl.setForeground(new Color(255, 0, 0)); btAdd.setForeground(new Color(255, 0, 0)); btMult.setForeground(new Color(255, 0, 0)); btDiv.setForeground(new Color(255, 0, 0)); btMinu.setForeground(new Color(255, 0, 0)); btEqual.setForeground(new Color(255, 0, 0));bt0.setForeground(new Color(0,0,255));bt1.setForeground(new Color(0, 0, 255));bt2.setForeground(new Color(0,0,255));bt3.setForeground(new Color(0,0,255));bt4.setForeground(new Color(0,0,255));bt5.setForeground(new Color(0,0,255));bt6.setForeground(new Color(0,0,255));bt7.setForeground(new Color(0,0,255));bt8.setForeground(new Color(0,0,255));bt9.setForeground(new Color(0,0,255)); btSqrt.setForeground(new Color(0,0,255)); btMol.setForeground(new Color(0,0,255)); btCoun.setForeground(new Color(0,0,255)); btSign.setForeground(new Color(0,0,255));//注册监听bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);bt4.addActionListener(this);bt5.addActionListener(this);bt6.addActionListener(this);bt7.addActionListener(this);bt8.addActionListener(this);bt9.addActionListener(this);bt0.addActionListener(this);btAdd.addActionListener(this);btMinu.addActionListener(this);btMult.addActionListener(this);btDiv.addActionListener(this);btEqual.addActionListener(this);btPoint.addActionListener(this);btSqrt.addActionListener(this);btMol.addActionListener(this);btCoun.addActionListener(this);btSign.addActionListener(this);btBk.addActionListener(this);btCe.addActionListener(this);btCl.addActionListener(this);menuEditCopy.addActionListener(this);menuEditPaste.addActionListener(this);menuHelpAbout.addActionListener(this);f.addWindowListener(new MyWinLis());f.setTitle("计算器");f.setSize(295,240);f.setResizable(false);//不能改变窗体大小f.setVisible(true);}String foreNum=null;String currOpr=null;String currNum=null;boolean i = true;String copy;//复制public void actionPerformed(ActionEvent e) {// TODO自动生成方法存根Object obj=e.getSource();//输入数字if(obj==bt1||obj==bt2||obj==bt3||obj==bt4||obj==bt5||obj==bt6||obj==bt7||obj== bt8||obj==bt9||obj==bt0){if(i==true)tf.setText(e.getActionCommand());elsetf.setText(tf.getText()+e.getActionCommand());i = false;}//小数点else if(obj==btPoint){if(i==false)tf.setText(tf.getText()+'.');}//实现开根号else if(obj==btSqrt){if(tf.getText().charAt(0)=='-'){tf.setText("函数输入无效");}elsetf.setText(Double.toString(ng.Math.sqrt(Double. parseDouble(tf.getText()))));i = true;}//实现倒数else if(obj==btCoun){if (tf.getText().charAt(0) == '0') {tf.setText("零不能求倒数");i = true;}else {String s = Double.toString(1 / Double.parseDouble(tf.getText()));foreNum = tf.getText();tf.setText(s);i = true;}}//实现+/-符号else if (obj == btSign) {boolean isNumber = true;String s = tf.getText();for (int m = 0; m< s.length(); m++)if (! (s.charAt(m) >= '0' && s.charAt(m) <='9' || s.charAt(m) =='.'||s.charAt(m) == '-')) {break;}if (isNumber == true) {//如果当前字符串首字母有-号,代表现在是个负数,再按下时,则将首符号去掉if (s.charAt(0) == '-') {tf.setText("");for (int m = 1; m< s.length(); m++) {char a = s.charAt(m);tf.setText(tf.getText() + a);}}//如果当前字符串第一个字符不是符号,则添加一个符号在首字母处elsetf.setText('-' + s);}}//实现%功能else if(obj==btMol){boolean isNumber = true;if(isNumber==true)tf.setText(String.valueOf(Double.parseDouble(tf.getText())/100));elsetf.setText("错误");}//实现符号运算else if(obj==btAdd||obj==btMinu||obj==btDiv||obj==btMult){if(i==false){currNum=tf.getText();if(currOpr=="+")tf.setText(String.valueOf(Double.parseDouble(foreNum)+Double.parseDouble(currN um)));else if(currOpr=="-")tf.setText(String.valueOf(Double.parseDouble(foreNum)-Double.parseDouble(currN um)));else if(currOpr=="*")tf.setText(String.valueOf(Double.parseDouble(foreNum)*Double.parseDouble(currN um)));else if(currOpr=="/"){if (Double.parseDouble(tf.getText()) == 0)tf.setText("除数不能为零");elsetf.setText(String.valueOf(Double.parseDouble(foreNum)/Double.parseDouble(currNum))) ;}}foreNum=tf.getText();tf.setText("");currOpr=e.getActionCommand();i = false;}//实现等号else if(obj==btEqual){currNum=tf.getText();if(currOpr=="+")tf.setText(String.valueOf(Double.parseDouble(foreNum)+Double.parseDouble(currN um)));else if(currOpr=="-")tf.setText(String.valueOf(Double.parseDouble(foreNum)-Double.parseDouble(currN um)));else if(currOpr=="*")tf.setText(String.valueOf(Double.parseDouble(foreNum)*Double.parseDouble(currN um)));else if(currOpr=="/"){if (Double.parseDouble(tf.getText()) == 0)tf.setText("除数不能为零");elsetf.setText(String.valueOf(Double.parseDouble(foreNum)/Double.parseDouble(currN um)));}currOpr=e.getActionCommand();i = true;}//实现Backspace功能else if(obj==btBk){String s = tf.getText();tf.setText("");for (int m = 0;m <s.length() - 1; m++) {char a = s.charAt(m);tf.setText(tf.getText() + a);i = true;}}//实现Ce功能else if (obj == btCe) {tf.setText("0.");}//实现C功能else if (obj == btCl) {foreNum=currNum="";tf.setText("0.");}//实现复制else if(obj==menuEditCopy){copy=tf.getText();}//实现粘贴else if (obj == menuEditPaste) {tf.setText(copy);}//实现帮助主题else if(obj == menuHelpAbout){ImageIcon icon = new ImageIcon("src//Icons//about1.jpg");JLabel label = new JLabel(icon);JOptionPane.showMessageDialog(f,label,"帮助主题",JOptionPane.PLAIN_MESSAGE);}}public static void main(String[] args) {// TODO自动生成方法存根try{UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());//UIManager统一管理}catch(Exception e) {e.printStackTrace();}Test t = new Test();t.init();}}class MyWinLis implements WindowListener{public void windowActivated(WindowEvent arg0) {// TODO自动生成方法存根}public void windowClosed(WindowEvent arg0) { // TODO自动生成方法存根}public void windowClosing(WindowEvent arg0) { // TODO自动生成方法存根System.exit(0);}public void windowDeactivated(WindowEvent arg0) { // TODO自动生成方法存根}public void windowDeiconified(WindowEvent arg0) { // TODO自动生成方法存根}public void windowIconified(WindowEvent arg0) { // TODO自动生成方法存根}public void windowOpened(WindowEvent arg0) { // TODO自动生成方法存根}}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
简单计算器代码package calcultorthree;import java.awt.BorderLayout;//导入边界布局管理器类import java.awt.GridLayout;//导入网格布局管理器类import java.awt.TextField;//导入文本区域类import java.awt.event.ActionEvent;//导入事件类import java.awt.event.ActionListener;//导入事件监听者类import javax.swing.JButton;//导入按钮类import javax.swing.JFrame;//导入窗体import javax.swing.JPanel;//导入面板/***本例实现了简单计算器代码,具备加减乘除和正弦功能,旨在抱砖引玉。
熟悉java的同学,可以在此基础上实现更复杂的功能。
* @author Fjsh*/public class CalcultorThree {//新建对象,在构造函数中进行初始化JFrame frame;//新建窗体对象JButton buttonzero,buttondot,buttonequal;//新建按钮“0”“.”“=”JButton buttonplus,buttonminus,buttonmultiple,buttondevision,buttonsin,buttontozero;//新建按钮“+”“-”“*”“/”“sin”和归零按钮JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,buttonseven,buttoneight,buttonnine;//新建数字按钮“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”JPanel panelwest,panelcenter,paneleast;//新建三个面板TextField tf;//新建文本区域对象public CalcultorThree(){//初始化对象tf=new TextField(30);//构造空文本字段,字符宽度为30frame =new JFrame("CalculatorThree");//构造窗体对象,名称为“CalculatorThree”panelcenter=new JPanel();//构造面板,放到窗体中央panelwest=new JPanel();//构造面板,放到窗体西边paneleast=new JPanel();//构造面板,放到窗体东边Handle h=new Handle();//新建Handle类对象,Handle类为事件监听类//创建数字按钮对象,1、2、3、4、5、6、7、8、9buttonone=new JButton("1");buttontwo=new JButton("2");buttonthree=new JButton("3");buttonfour=new JButton("4");buttonfive=new JButton("5");buttonsix=new JButton("6");buttonseven=new JButton("7");buttoneight=new JButton("8");buttonnine=new JButton("9");panelcenter.setLayout(new GridLayout(3,3));//设置面板布局为网格布局,3行3列//将数字按钮添加到中间面板panelcenter.add(buttonone);panelcenter.add(buttontwo);panelcenter.add(buttonthree);panelcenter.add(buttonfour);panelcenter.add(buttonfive);panelcenter.add(buttonsix);panelcenter.add(buttonseven);panelcenter.add(buttoneight);panelcenter.add(buttonnine);//为10个按钮注册事件监听器buttonone.addActionListener(h);buttontwo.addActionListener(h);buttonthree.addActionListener(h);buttonfour.addActionListener(h);buttonfive.addActionListener(h);buttonsix.addActionListener(h);buttonseven.addActionListener(h);buttoneight.addActionListener(h);buttonnine.addActionListener(h);//构造按钮“0”“.”“=”,注册事件监听器,设置1行3列的布局,添加到到西边的面板buttonzero=new JButton("0");buttondot=new JButton(".");buttonequal=new JButton("=");buttonzero.addActionListener(h);buttondot.addActionListener(h);buttonequal.addActionListener(h);panelwest.setLayout(new GridLayout(3,1));panelwest.add(buttonzero);panelwest.add(buttondot);panelwest.add(buttonequal);//构造操作按钮“+”“-”“*”“/”“sin”“>0”,其中“>0”为归零按钮buttonplus=new JButton("+");buttonminus=new JButton("-");buttonmultiple=new JButton("*");buttondevision=new JButton("/");buttonsin=new JButton("sin");buttontozero=new JButton(">0");paneleast.setLayout(new GridLayout(3,1));//设置西边的布局为3行1列//将操作按钮“+”“-”“*”“/”“sin”“>0”添加到西边的面板中paneleast.add(buttonplus);paneleast.add(buttonminus);paneleast.add(buttonmultiple);paneleast.add(buttondevision);paneleast.add(buttonsin);paneleast.add(buttontozero);//为操作按钮“+”“-”“*”“/”“sin”“>0”注册监听器buttonplus.addActionListener(h);buttonminus.addActionListener(h);buttonmultiple.addActionListener(h);buttondevision.addActionListener(h);buttonsin.addActionListener(h);buttontozero.addActionListener(h);frame.setLayout(new BorderLayout());//设置窗体为边界布局frame.add(paneleast,"East");//将东边面板paneleast添加到窗体的东边frame.add(tf,BorderLayout.NORTH); //将tf文本区域添加到窗体的北边,即顶部frame.add(panelwest,BorderLayout.WEST);//将panelwest面板添加到窗体西边frame.add(panelcenter,BorderLayout.CENTER);//将panelcenter面板添加到窗体中间frame.pack();//设置窗体大小,适合其子组件的首选大小和布局frame.setLocation(500,500);//设置窗体显示位置为(500,500)frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置布局窗体默认关闭方式frame.setVisible(true);//设置窗体可见}public static void main(String[] args) {new CalcultorThree();//主方法中新建对象}class Handle implements ActionListener{//实现动作监听器类int biaozhi=0;//此标志标志加减乘除操作double flag1=0,flag2=0,flag3=0;//flag1、flag2为两个操作数,flag3为结果@Overridepublic void actionPerformed(ActionEvent e) { //方法重写try{//此处可能会产生异常,用try、catch捕捉异常,不用处理if(e.getSource()==buttondot){//小数点tf.setText("0.");}if(e.getSource()==buttontozero){//归零操作tf.setText("");}if(e.getSource()==buttonzero){//按键0操作tf.setText(tf.getText()+"0");flag1=Double.parseDouble(tf.getText());//将文本区域转换成Double类型,赋给flag1}if(e.getSource()==buttonone){//按键1操作tf.setText(tf.getText()+"1");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttontwo){//按键2操作tf.setText(tf.getText()+"2");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonthree){//按键3操作tf.setText(tf.getText()+"3");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonfour){//按键4操作tf.setText(tf.getText()+"4");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonfive){//按键5操作tf.setText(tf.getText()+"5");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonsix){//按键6操作tf.setText(tf.getText()+"6");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonseven){//按键7操作tf.setText(tf.getText()+"7");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttoneight){//按键8操作tf.setText(tf.getText()+"8");flag1=Double.parseDouble(tf.getText());}else if(e.getSource()==buttonnine){//按键9操作tf.setText(tf.getText()+"9");flag1=Double.parseDouble(tf.getText());}if(e.getSource()==buttonplus){//加法操作tf.setText("");flag2=flag1;biaozhi=0;}if(e.getSource()==buttonminus){//减法操作tf.setText("");flag2=flag1;biaozhi=1;}if(e.getSource()==buttonmultiple){//乘法操作tf.setText("");flag2=flag1;biaozhi=2;}if(e.getSource()==buttondevision){//除法操作tf.setText("");flag2=flag1;biaozhi=3;}if(e.getSource()==buttonsin){//正弦操作flag3=Math.sin(flag1);tf.setText(flag3+"");}if(e.getSource()==buttonequal){//等号操作,利用biaozhi判断进行相应加减乘除操作if(biaozhi==0){flag3=flag1+flag2;}if(biaozhi==1){flag3=flag1-flag2;}if(biaozhi==2){flag3=flag1*flag2;}if(biaozhi==3){flag3=flag1/flag2;}tf.setText(flag3+"");}}catch(Exception ex){}}}}。