java计算器实现源代码上传

合集下载

java科学计算器源代码

java科学计算器源代码

import java.awt.*;import javax.swing.*;import java.awt.event.*;class Counter extends WindowAdapter{static JFrame f=new JFrame("计算器"); static JTextField text1=new JTextField("0."); static String source="";static String cal="";static String object="";static boolean flag=false;static boolean flag1=true;static boolean flag2=false;public void init(){try{Container c=f.getContentPane();JPanel pan1=new JPanel();JButton b1=new JButton("1");JButton b2=new JButton("2");JButton b3=new JButton("3");JButton b4=new JButton("4");JButton b5=new JButton("5");JButton b6=new JButton("6");JButton b7=new JButton("7");JButton b8=new JButton("8");JButton b9=new JButton("9");JButton b0=new JButton("0");JButton b11=new JButton("+");JButton b12=new JButton("-");JButton b13=new JButton("*");JButton b14=new JButton("/");JButton b15=new JButton(".");JButton b16=new JButton("=");JButton bclar=new JButton("清零");text1.setHorizontalAlignment(JTextField.RIGHT);c.add(text1,"North");c.add(pan1);A aa=new A();Result re=new Result();Opertion op=new Opertion();Clar cl=new Clar();b1.addActionListener(aa);b2.addActionListener(aa);b3.addActionListener(aa);b4.addActionListener(aa);b5.addActionListener(aa);b6.addActionListener(aa);b7.addActionListener(aa);b8.addActionListener(aa);b9.addActionListener(aa);b0.addActionListener(aa);b11.addActionListener(op);b12.addActionListener(op);b13.addActionListener(op);b14.addActionListener(op);b16.addActionListener(re);b15.addActionListener(aa);bclar.addActionListener(cl);pan1.add(b1);pan1.add(b2);pan1.add(b3);pan1.add(b11);pan1.add(b4);pan1.add(b5);pan1.add(b6);pan1.add(b12);pan1.add(b7);pan1.add(b8);pan1.add(b9);pan1.add(b13);pan1.add(b0);pan1.add(b15);pan1.add(b16);pan1.add(b14);pan1.add(bclar);f.setSize(200,220);f.setVisible(true);}catch(Exception e){System.out.println(e.getMessage());}}class A implements ActionListener{public void actionPerformed(ActionEvent e) {String a=text1.getText();String s=e.getActionCommand();if(a.equals("0.")||a.equals("+")||a.equals("-")||a.equals("*")||a.equals("/")) text1.setText(s);else {if(flag2){text1.setText(s);flag2=false;}elsetext1.setText(a+s);}}}class Opertion implements ActionListener{public void actionPerformed(ActionEvent e){cal=e.getActionCommand();if(flag1==true)source=text1.getText();text1.setText(cal);flag1=false;flag=true;}}class Result implements ActionListener{public void actionPerformed(ActionEvent e){double num1;num1=Double.parseDouble(source); object=text1.getText();double num2;num2=Double.parseDouble(object); double result=0;if(cal.equals("+"))result=num1+num2;if(cal.equals("-"))result=num1-num2;if(cal.equals("*"))result=num1*num2;if(cal.equals("/"))if(num2==0)text1.setText("除数不能为0");elseresult=num1/num2;String s1=Double.toString(result);text1.setText(s1);flag1=true;flag2=true;}}class Clar implements ActionListener{public void actionPerformed(ActionEvent e) {text1.setText("0.");}}public static void main(String[] args){Counter count=new Counter();count.init();}public void windowClosing(WindowEvent e){ System.exit(1);}public void windowOpened(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} }。

计算器JAVA源代码

计算器JAVA源代码

import java.awt.*;import javax.swing.*;import java.awt.Event.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class Calculation extends JFrame implements ActionListener {private JTextField result;JTextField fm;Double dm = 0d;public Calculation(){super("计算器");result = new JTextField("0",30);result.setBackground(Color.white);result.setHorizontalAlignment(JTextField.RIGHT);result.setEditable(false);JPanel resultpanel = new JPanel();resultpanel.add(result);fm = new JTextField(2);JButton b1= new JButton("Backspace");JButton b2= new JButton("CE");JButton b3= new JButton("C");JPanel ControalPanel = new JPanel();ControalPanel.setLayout(new GridLayout(1,4,2,2));ControalPanel.add(fm);ControalPanel.add(b1);ControalPanel.add(b2);ControalPanel.add(b3);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);String dckey [] = {"MC","0","1","2","3","4","5","6","7","8","9","/","sqrt","MR","*","%","MS","-","1/x","M+","+/-" ,".","+","="};JPanel dckeypanel =new JPanel();dckeypanel.setLayout(new GridLayout(4,6,2,2));for(int i=0;i<24;i++){JButton b = new JButton(dckey[i]);dckeypanel.add(b);b.addActionListener(this);}Container ct = this.getContentPane();ct.setLayout(new BorderLayout());ct.add(resultpanel,BorderLayout.NORTH);ct.add(ControalPanel,BorderLayout.CENTER);ct.add(dckeypanel,BorderLayout.SOUTH);pack();setVisible(true);setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}private boolean newDigital = true;private int optionvalue;private String operation = "";private Double d,d1,d2;public void actionPerformed(ActionEvent e){String s = (e.getActionCommand());String str = result.getText();if(s.equals("Backspace")){String s1 = result.getText();result.setText(s1.substring(0,s1.length()-1));}if(s.equals("CE")){result.setText("0");newDigital = true;}if(s.equals("C")){result.setText("0");optionvalue = 0;newDigital = true;}if(s.equals("0")||s.equals("1")||s.equals("2")||s.equals("3")||s.equals("4")||s.equals("5")||s.equal s("6")||s.equals("7")||s.equals("8")||s.equals("9")){if(!newDigital){result.setText(str+s);}else{result.setText(s);newDigital = false;}return;}if(s.equals(".")){if(result.getText().trim().startsWith("0")){result.setText("0.");newDigital = false;}else{result.setText(str+".");}return;}if(s.equals("+/-")){d = Double.parseDouble(str.trim());result.setText(String.valueOf((-d)));return;}if(s.equals("+")){d1 = Double.parseDouble(result.getText());optionvalue = 1;result.setText("");}if(s.equals("-")){d1 = Double.parseDouble(result.getText());optionvalue = 2;result.setText("");}if(s.equals("*")){d1 = Double.parseDouble(result.getText());optionvalue = 3;result.setText("");}if(s.equals("/")){d1 = Double.parseDouble(result.getText());optionvalue = 4;result.setText("");}if(s.equals("=")){d2 = Double.parseDouble(result.getText());switch(optionvalue){case 1:result.setText(String.valueOf(d1+d2));break;case 2:result.setText(String.valueOf(d1-d2));break;case 3:result.setText(String.valueOf(d1*d2));break;case 4:if(d2!=0){result.setText(String.valueOf(d1/d2));}else{result.setText("除数不能为零");return;}break;}operation = "";}if(s.equals("sqrt")){d = Double.parseDouble(result.getText().trim());if(d>=0){result.setText(String.valueOf((Math.sqrt(d))));}else{result.setText("除数不能为零");}}if(s.equals("1/x")){d = Double.parseDouble(result.getText().trim());if(str.equals("0")){result.setText("除数不能为零");}else{result.setText(String.valueOf((1/d)));}}if(s.equals("%")){result.setText(String.valueOf((Double.parseDouble(str)/100))); }if(s.equals("MC")){fm.setText("");dm=0d;newDigital = true;}if(s.equals("MR")){if(fm.getText().trim()!=""){result.setText(""+dm);}}if(s.equals("MS")){dm = Double.parseDouble(result.getText().trim());fm.setText("M");}if(s.equals("M+")){dm = dm+Double.parseDouble(result.getText().trim());}}public static void main (String [] args){ new Calculation();}}。

JAVA编写的计算器源代码

JAVA编写的计算器源代码

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自动生成方法存根}}。

JAVA简易计算器程序源代码

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源代码

计算器的Java源代码
button_7.setBorder(BorderFactory.createRaisedBevelBorder());
button_7.setText("7");
button_8.setFont(new Font("SansSerif",0,12));
button_8.setForeground(Color.blue);
button_4.setBorder(BorderFactory.createRaisedBevelBorder());
button_4.setText("4");
button_5.setFont(new Font("SansSerif",0,12));
button_5.setForeground(Color.blue);
//保存最近一次运算符
String recentOperation=null;
//保存最近一次的运算数据
String recentNum=null;
//描述当前输入状态,是重新输入还是接在后面,重新输入时为true
boolean isNew=true;
public Calculator(){
button_4.addActionListener(this);
button_5.addActionListener(this);
button_6.addActionListener(this);
button_7.addActionListener(this);
button_8.addActionListener(this);
JButton button_CE=new JButton();

Java计算器源代码(已成功运行)汇总

Java计算器源代码(已成功运行)汇总
Java计算器程序代码
以下为代码:
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
public class Calculator extends JFrame implements ActionListener
{
private booleandotExist, operated, equaled; //帮助运算的布尔变量
private double storedNumber; //目前的结果private char lastOperator; //表示上一运算符private JTextField operation; //结果栏
private JButton dot, plus, minus, multi, div, sqrt, equal, changePN, clear; //运算符
private JButton[] numbers; //数字
//构造者
public Calculator(
{
setTitle("Calculator";
//初始化变量
dotExist = false; //表示当前的数是否有小数点
operated = false; //表示任意运算符是否被按下equaled = false; //表示等号是否被按下storedNumber = 0;
else if (lastOperator == 's' storedNumber = Math.sqrt(currentNumber; else if (lastOperator == '=' && equaled storedNumber = currentNumber; operation.setText("" + storedNumber; operated = true; lastOperator = operator; } //快捷使用GridBagLayout的方法private void addComponent(GridBagLayout layout, Component component, int row, int col, int width, int height { GridBagConstraints constraints=new GridBagConstraints(; constraints.fill = GridBagConstraints.BOTH; constraints.insets = new Insets(10, 2, 10, 2; constraints.weightx = 100; constraints.weighty = 100; constraints.gridx = col; constraints.gridy = row; constraints.gridwidth = width; constraints.gridheight = height; layout.setConstraints(component, constraints;

java编写计算器源代码

java编写计算器源代码

计算器的制作import java.awt.*;import java.awt.event.*;class ComputerExe extends Frame implements ActionListener {Button b1,b2,b3,b4;TextField t1,t2,t3;Label l1,l2;public static void main(String[] args)//程序入口{new ComputerExe();//创建本窗体对象}ComputerExe()//构造方法{super("四则运算");setBounds(100,100,300,200);setVisible(true);b1=new Button("加");b2=new Button("减");b3=new Button("乘");b4=new Button("除");t1=new TextField(15);t2=new TextField(15);t3=new TextField(15);l1=new Label("");l2=new Label("=");l1.setBackground(Color.yellow);l1.setForeground(Color.red);l2.setBackground(Color.yellow);l2.setForeground(Color.red);t3.setEditable(false);setLayout(new FlowLayout());//更改窗体框架的布局add(t1);add(l1);add(t2);add(l2);add(t3);add(b1);add(b2);add(b3);add(b4);setVisible(true);b1.addActionListener(this);b2.addActionListener(this);b3.addActionListener(this);b4.addActionListener(this);}//构造方法结束public void actionPerformed(ActionEvent e) { double n1,n2,n3;if(e.getSource()==b1){try{n1=Double.parseDouble(t1.getText());n2=Double.parseDouble(t2.getText());n3=n1+n2;t3.setText(String.valueOf(n3));l1.setText("+");}catch(NumberFormatException w){t3.setText("操作数应该为数字!");}}if(e.getSource()==b2){try{n1=Double.parseDouble(t1.getText());n2=Double.parseDouble(t2.getText());n3=n1-n2;t3.setText(String.valueOf(n3));l1.setText("-");}catch(NumberFormatException w){t3.setText("操作数应该为数字!");}}if(e.getSource()==b3){try{n1=Double.parseDouble(t1.getText());n2=Double.parseDouble(t2.getText());n3=n1*n2;t3.setText(String.valueOf(n3));l1.setText("*");}catch(NumberFormatException w){t3.setText("操作数应该为数字!");}}if(e.getSource()==b4){try{n1=Double.parseDouble(t1.getText());n2=Double.parseDouble(t2.getText());n3=n1/n2;t3.setText(String.valueOf(n3));l1.setText("/");}catch(NumberFormatException w){t3.setText("操作数应该为数字!");}}}}//类结束。

JAVA课程设计--计算器源代码(1)

JAVA课程设计--计算器源代码(1)
JAVA课程设计计算器源代码
设计要求:
具体内容:计算器可以进行简单的四则运算(加、减、乘、除),还可以进行(八进制,十进制,十六进制)之间的相互转换,内容可以清除,在window或DOS下直接运行即可,按钮为灰色,界面协调即可。
源代码:
import java.awt.*;
import java.awt.event.*;
bHex.addActionListener(this);
bNull.addActionListener(this);
p1.setLayout(new GridLayout(4,4,5,5));
p2.setLayout(new GridLayout(1,6,5,5));
add(t,"North");
}
else
{
getResult();
countOper=0;
}
}
}
public void getResult()
{
num1=Double.parseDouble(str1);
num2=Double.parseDouble(str2);
if(operator.equals("加"))
{
result=num1+num2;
b[i].setActionCommand("number");
b[i].addActionListener(this);
}
p1.add(bPoint);
bPoint.setActionCommand("number");
p1.add(bAdd);
p1.add(bSub);
p1.add(bMul);

JAVA编写的计算器源代码

JAVA编写的计算器源代码

JAVA编写的计算器源代码// Calculator.javaimport javax.swing.*; // 引入swing库import java.awt.*; // 引入awt库import java.awt.event.*; // 引入awt.event库public class Calculator extends JFrame implements ActionListener//定义按钮private JButton zero;private JButton one;private JButton two;private JButton three;private JButton four;private JButton five;private JButton six;private JButton seven;private JButton eight;private JButton nine;private JButton point;private JButton equal; private JButton plus; private JButton minus; private JButton multiply; private JButton divide; private JButton backspace; private JButton ac;private JButton ce;private JButton sqrt; private JButton sqr;private JButton plus_minus; private JButton delete; private JButton sin;private JButton cos;private JButton tan;private JButton log;private JButton nfactorial; private JButton cubic; private JButton coln;private JButton factorial;//定义文本框private JTextField resulttext;// 定义boolean变量boolean clrdisp = true; // 昵称确定是否清除计算器显示boolean isCalculate = false; // 是否可以执行计算// 定义String变量,用于存储操作符String optr;//定义存储第一个操作数double num1;//初始化构造函数public Calculato//设置布局setLayout(new BorderLayout();//创建面板JPanel northPanel = new JPanel(;JPanel centerPanel = new JPanel(;JPanel southPanel = new JPanel(;//设置面板布局northPanel.setLayout(new FlowLayout(); centerPanel.setLayout(new GridLayout(4, 5)); southPanel.setLayout(new FlowLayout();//设置计算器显示resulttext = new JTextField(28); northPanel.add(resulttext);resulttext.setEditable(false);//初始化按钮zero = new JButton("0");one = new JButton("1");two = new JButton("2");three = new JButton("3");four = new JButton("4");five = new JButton("5");six = new JButton("6");seven = new JButton("7");eight = new JButton("8");nine = new JButton("9");point = new JButton(".");equal = new JButton("=");plus = new JButton("+");minus = new JButton("-"); multiply = new JButton("*"); divide = new JButton("/"); backspace = new JButton("<-"); ac = new JButton("AC");ce = new JButton("CE");sqrt = new JButton("sqrt");sqr = new JButton("sqr");plus_minus = new JButton("+/-");。

计算器(JAVA)源代码

计算器(JAVA)源代码

//定义计算的类import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JTextField;public class Caculate implements ActionListener { //设置属性private String data;private JTextField text;private String result = "0";private boolean start_new = false;private double last_value = 0;private String ope = "";private double value = 0;public String getResult (){return result;}//定义一个构造方法public Caculate(JTextField text){this.text = text;}@Override//按钮事件处理public void actionPerformed(ActionEvent cal) { // TODO Auto-generated method stubdata = cal.getActionCommand();data = data.trim();if("0123456789".indexOf(data) != -1){numButton(data);}else if (".".indexOf(data) != -1){dotButton(data);}else if ("+-*/".indexOf(data) != -1){operateButton(data);}else if ("=".indexOf(data)!=-1){equalButton();}//System.out.println(data);System.out.println(result);text.setText(result);}//计算程序private void numButton(String da){if(!start_new){result = result + da;}else{result = da;}while (result.startsWith("0")&&!result.startsWith("0.")&&result.length()>0){ result = result.substring(1);}start_new = false;}private void dotButton(String da){if(da.indexOf(".")!= -1){result = result + da;}}private void operateButton(String da){if(result.length()>0){last_value = Double.parseDouble(result);ope = da;start_new = true;}}private void equalButton(){value = Double.parseDouble(result);if(ope.equals("+")){result = String.valueOf(last_value + value);}else if(ope.equals("-")){result = String.valueOf(last_value - value);}else if(ope.equals("*")){result = String.valueOf(last_value * value);}else if(ope.equals("/")){if(value == 0){result = "ERROR";}else{result = String.valueOf(last_value / value);}}// 去掉结尾的“.0000...”if (result.matches(".+\\.0+")) {result = result.substring(0, stIndexOf("."));}// 设置状态start_new = true;ope = "";}}import javax.swing.JTextField;public class Culator {private static final String String = null;JTextField op;private String re;/*** @param args*/public static void main(String[] args) {Culator cul = new Culator();cul.init();// TODO Auto-generated method stub}public void init(){javax.swing.JFrame frame = new javax.swing.JFrame(); frame.setTitle("计算器");java.awt.FlowLayout f1= new java.awt.FlowLayout();frame.setLayout(f1);javax.swing.JMenuBar cai = createMB();frame.setJMenuBar(cai);javax.swing.JButton mc = new javax.swing.JButton("MC");op= new javax.swing.JTextField("0",25);//设置数字从右边开始显示op.setHorizontalAlignment(JTextField.RIGHT);//设置按钮javax.swing.JButton mr = new javax.swing.JButton("MR"); javax.swing.JButton ms = new javax.swing.JButton("MS"); javax.swing.JButton mp = new javax.swing.JButton("M+"); javax.swing.JButton mm = new javax.swing.JButton("M-"); javax.swing.JButton delete = new javax.swing.JButton(" ←"); javax.swing.JButton ce = new javax.swing.JButton("CE "); javax.swing.JButton c = new javax.swing.JButton(" C "); javax.swing.JButton pm = new javax.swing.JButton(" ± "); javax.swing.JButton r = new javax.swing.JButton(" √"); javax.swing.JButton seven = new javax.swing.JButton(" 7 "); javax.swing.JButton eight = new javax.swing.JButton(" 8 "); javax.swing.JButton nine = new javax.swing.JButton(" 9 ");javax.swing.JButton under = new javax.swing.JButton(" / ");javax.swing.JButton percent = new javax.swing.JButton(" % ");javax.swing.JButton four = new javax.swing.JButton(" 4 ");javax.swing.JButton five = new javax.swing.JButton(" 5 ");javax.swing.JButton six = new javax.swing.JButton(" 6 ");javax.swing.JButton and = new javax.swing.JButton(" * ");javax.swing.JButton ds = new javax.swing.JButton("1/x");javax.swing.JButton one = new javax.swing.JButton(" 1 ");javax.swing.JButton two = new javax.swing.JButton(" 2 ");javax.swing.JButton three = new javax.swing.JButton(" 3 ");javax.swing.JButton m = new javax.swing.JButton(" - ");javax.swing.JButton equal = new javax.swing.JButton(" = ");javax.swing.JButton zero = new javax.swing.JButton(" 0 ");javax.swing.JButton dot = new javax.swing.JButton(" . ");javax.swing.JButton plus = new javax.swing.JButton(" + ");//添加按钮frame.add(op);frame.add(mc);frame.add(mr);frame.add(ms);frame.add(mp);frame.add(mm);frame.add(delete);frame.add(ce);frame.add(c);frame.add(pm);frame.add(r);frame.add(seven);frame.add(eight);frame.add(nine);frame.add(under);frame.add(percent);frame.add(four);frame.add(five);frame.add(six);frame.add(and);frame.add(ds);frame.add(one);frame.add(two);frame.add(three);frame.add(m);frame.add(equal);frame.add(zero);frame.add(dot);frame.add(plus);frame.setSize(290,300);//实例化一个Caculate类Caculate cal = new Caculate(op);//增加监听op.addActionListener(cal);mc.addActionListener(cal);mr.addActionListener(cal);ms.addActionListener(cal);mp.addActionListener(cal);mm.addActionListener(cal);delete.addActionListener(cal);ce.addActionListener(cal);c.addActionListener(cal);pm.addActionListener(cal);r.addActionListener(cal);seven.addActionListener(cal);eight.addActionListener(cal);nine.addActionListener(cal);under.addActionListener(cal); percent.addActionListener(cal);four.addActionListener(cal);five.addActionListener(cal);six.addActionListener(cal);and.addActionListener(cal);ds.addActionListener(cal);one.addActionListener(cal);two.addActionListener(cal);three.addActionListener(cal);m.addActionListener(cal);equal.addActionListener(cal);zero.addActionListener(cal);dot.addActionListener(cal);plus.addActionListener(cal);frame.setDefaultCloseOperation(3); frame.setResizable(false);frame.setVisible(true);}//创建一个设置TextField窗口容的函数//public void setOp(String re){// op.setText(re);//}//创建一个常带有菜单的菜单条,就加到JFrame上显示private javax.swing.JMenuBar createMB(){//创建菜单条javax.swing.JMenuBar mb = new javax.swing.JMenuBar();//创建查看菜单javax.swing.JMenu view = new javax.swing.JMenu("查看(V)");//创建菜单项javax.swing.JMenuItem biaozhun = new javax.swing.JMenuItem("标准型"); javax.swing.JMenuItem kexue = new javax.swing.JMenuItem("科学型"); javax.swing.JMenuItem chengxu = new javax.swing.JMenuItem("程序员"); javax.swing.JMenuItem tongji = new javax.swing.JMenuItem("统计信息"); javax.swing.JMenuItem history = new javax.swing.JMenuItem("历史");//将菜单项添加到菜单上view.add(biaozhun);view.add(kexue);view.add(chengxu);view.add(tongji);view.add(history);//创建编辑菜单javax.swing.JMenu operation = new javax.swing.JMenu("编辑(O)");//创建菜单项javax.swing.JMenuItem copy = new javax.swing.JMenuItem("复制"); javax.swing.JMenuItem paste = new javax.swing.JMenuItem("黏贴"); javax.swing.JMenuItem hr = new javax.swing.JMenuItem("历史记录");//将菜单项添加到菜单上operation.add(copy);operation.add(paste);operation.add(hr);//创建帮助菜单javax.swing.JMenu help = new javax.swing.JMenu("帮助(H)");//创建帮助菜单项javax.swing.JMenuItem vh = new javax.swing.JMenuItem("查看帮助"); javax.swing.JMenuItem about = new javax.swing.JMenuItem("关于计算器"); //将菜单项添加到菜单上help.add(vh);help.add(about);//加上一个分隔条help.addSeparator();//将菜单添加到菜单条上mb.add(view);mb.add(operation);mb.add(help);return mb;} }。

简易计算器源代码--java

简易计算器源代码--java

package calculator;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.math.BigDecimal;import javax.swing.*;public class Operation extends JFrame implements ActionListener{/****/private static final long serialVersionUID = 1L;private final String str[] = {"7","8","9","/","4","5","6","*","1","2", "3","-",".","0","=","+"};private final JButton[] JB = new JButton[str.length];private final JButton reset = new JButton("CE");private final JTextField display = new JTextField("");Operation(){super("计算器");JPanel panel1 = new JPanel(new BorderLayout());JPanel panel2 = new JPanel(new GridLayout(4,4));panel1.add(BorderLayout.CENTER, display);panel1.add(BorderLayout.EAST, reset);int i;for( i = 0;i < str.length;i++){JB[i] = new JButton(str[i]);panel2.add(JB[i]);}getContentPane().setLayout(new BorderLayout());getContentPane().add(BorderLayout.NORTH,panel1);getContentPane().add(BorderLayout.SOUTH, panel2);setSize(800,800);for(i = 0;i < str.length;i++){JB[i].addActionListener(this);}reset.addActionListener(this);display.addActionListener(this);setVisible(true);setDefaultCloseOperation((WindowConstants.DISPOSE_ON_CLOSE));pack();}public void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根Object target = e.getSource();String label = e.getActionCommand();if(target == reset){handlereset();}else if("0123456789.".indexOf(label)>=0){handleNumber(label);}elsehandleOperator(label);}private void handleNumber(String key) {// TODO 自动生成的方法存根if ((isFirstDigit)&&("0123456789".indexOf(key)>=0))display.setText(key);else if ((key.equals(".")))display.setText(display.getText() + ".");else if (!key.equals("."))display.setText(display.getText() + key);isFirstDigit = false;}boolean isFirstDigit = true;double number1 = 0.0;double number2 = 0.0;String operator = "=";BigDecimal df ;private void handlereset() {// TODO 自动生成的方法存根display.setText("");isFirstDigit = true;operator = "=";}public void handleOperator(String key) {if (operator.equals("+")){number1 = Double.valueOf(display.getText());number2 = add(number1,number2);df = new BigDecimal(number2);display.setText(String.valueOf( df.setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue()));}else if (operator.equals("-")){number1 = Double.valueOf(display.getText());number2 = sub(number2,number1);df = new BigDecimal(number2);display.setText(String.valueOf( df.setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue()));}else if (operator.equals("*")){number1 = Double.valueOf(display.getText());number2 = mul(number1,number2);df = new BigDecimal(number2);display.setText(String.valueOf( df.setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue()));}else if (operator.equals("/")){number1 = Double.valueOf(display.getText());if(number1 == 0)display.setText("error");else{number2 = div(number2,number1);df = new BigDecimal(number2);display.setText(String.valueOf( df.setScale(5, BigDecimal.ROUND_HALF_UP).doubleValue()));}}else if (operator.equals("=")){number2 = Double.valueOf(display.getText());display.setText(String.valueOf(number2));}operator = key;isFirstDigit = true;}private double div(double key1, double key2) {// TODO 自动生成的方法存根double result = 0.0;result = key1 / key2;return result;}private double mul(double key1, double key2) {// TODO 自动生成的方法存根double result = 0.0;result = key1 * key2;return result;}private double sub(double key1, double key2) { // TODO 自动生成的方法存根double result = 0.0;result = key1 - key2;return result;}private double add(double key1, double key2) { // TODO 自动生成的方法存根double result = 0.0;result = number1 + number2;return result;}public static void main(String[] args) {new Operation();}}。

JAVA计算器源代码

JAVA计算器源代码

计算器源代码一、计算器源代码文件名:computer1.javaimport java.awt.*;import java.awt.event.*;public class computer1 extends Frame implements ActionListener{//声明窗口类并实现动作事件接口。

Button n0,n1,n2,n3,n4,n5,n6,n7,n8,n9;//声明数字按钮Button op,os,om,od,oe,oc;//声明操作按钮TextField tfd;//声明文本框String flg,rslt;//声明标志串、结果串Panel p1,p2,p3;//声明面板int i1,i2;float flt;computer1(){super("加减乘除计算器");n0 = new Button("0");//实现各按钮n1 = new Button("1");n2 = new Button("2");n3 = new Button("3");n4 = new Button("4");n5 = new Button("5");n6 = new Button("6");n7 = new Button("7");n8 = new Button("8");n9 = new Button("9");op = new Button("加");os = new Button("减");om = new Button("乘");od = new Button("除");oe = new Button("=");oc = new Button("c");tfd = new TextField(20);//实现文本框p1=new Panel();//实现各面板p2=new Panel();p3=new Panel();setLayout(new FlowLayout());//布局设计,用于安排按钮位置p1.add(n0);//将各数字按钮放入p1中p1.add(n1);p1.add(n2);p1.add(n3);p1.add(n4);p1.add(n5);p1.add(n6);p1.add(n7);p1.add(n8);p1.add(n9);p2.add(op);//将各操作按钮放入p2、p3中p2.add(os);p2.add(om);p2.add(od);p3.add(oe);p3.add(oc);setLayout(new BorderLayout());//布局设计,用于安排面板位置add("North",tfd);add("West",p1);add("Center",p2);add("East",p3);n0.addActionListener(this);//注册监听器到各按钮n1.addActionListener(this);n2.addActionListener(this);n3.addActionListener(this);n4.addActionListener(this);n5.addActionListener(this);n6.addActionListener(this);n7.addActionListener(this);n8.addActionListener(this);n9.addActionListener(this);op.addActionListener(this);os.addActionListener(this);om.addActionListener(this);od.addActionListener(this);oe.addActionListener(this);oc.addActionListener(this);addWindowListener(new closeWin());setSize(600,100);//确定窗口的尺寸setVisible(true);}public static void main (String args[]){new computer1();}public void actionPerformed(ActionEvent e){//处理鼠标事件的方法try{//异常处理if(e.getSource()==n0)//按数字键时tfd.setText(tfd.getText()+"0");if(e.getSource()==n1)tfd.setText(tfd.getText()+"1");if(e.getSource()==n2)tfd.setText(tfd.getText()+"2");if(e.getSource()==n3)tfd.setText(tfd.getText()+"3");if(e.getSource()==n4)tfd.setText(tfd.getText()+"4");if(e.getSource()==n5)tfd.setText(tfd.getText()+"5");if(e.getSource()==n6)tfd.setText(tfd.getText()+"6");if(e.getSource()==n7)tfd.setText(tfd.getText()+"7");if(e.getSource()==n8)tfd.setText(tfd.getText()+"8");if(e.getSource()==n9)tfd.setText(tfd.getText()+"9");if(e.getSource()==op){//按加号键时i1 = Integer.parseInt(tfd.getText());tfd.setText("");flg = "op";}if(e.getSource()==os){//按减号键时i1 = Integer.parseInt(tfd.getText());tfd.setText("");flg = "os";}if(e.getSource()==om){//按乘号键时i1 = Integer.parseInt(tfd.getText());tfd.setText("");flg = "om";}if(e.getSource()==od){//按除号键时i1 = Integer.parseInt(tfd.getText());tfd.setText("");flg = "od";}if(e.getSource()==oe){//按等号键时i2 = Integer.parseInt(tfd.getText());if(flg=="op"){rslt=Integer.toString(i1+i2);}if(flg=="os"){rslt=Integer.toString(i1-i2);}if(flg=="om"){rslt=Integer.toString(i1*i2);}if(flg=="od"){//除法需做小数处理flt=((float)i1)/((float)i2);rslt=Float.toString(flt);}tfd.setText(rslt);}if(e.getSource()==oc){//按清除键时tfd.setText("");flg = "";}}catch(Exception ex){}//扑捉到异常,但不进行处理}}class closeWin extends WindowAdapter{ //关闭窗口public void windowClosing(WindowEvent e){Frame frm=(Frame)(e.getSource());frm.dispose();System.exit(0);}}二、计算器界面三、修改后计算器界面。

简单的计算器源代码

简单的计算器源代码

//计算器,已经编译通过import java.awt.*;import java.awt.event.*;import javax.swing.*;public class testZ extends JFrame implements ActionListener{private JPanel jPanel1,jPanel2;private JTextField resultField;private JButton s1,s2,s3,s4,s5,s6,s7,s8,s9,s0,b1,b2,b3,b4,f1,f2; private boolean end,add,sub,mul,div;private String str;private double num1,num2;public testZ(){super("计算器");setSize(300,240);Container con=getContentPane();con.setLayout(new BorderLayout());jPanel1=new JPanel();jPanel1.setLayout(new GridLayout(1,1));jPanel2=new JPanel();jPanel2.setLayout(new GridLayout(4,4));resultField=new JTextField("0");jPanel1.add(resultField);con.add(jPanel1,BorderLayout.NORTH);s1=new JButton(" 1 "); s1.addActionListener(this);s2=new JButton(" 2 "); s2.addActionListener(this);s3=new JButton(" 3 "); s3.addActionListener(this);s4=new JButton(" 4 "); s4.addActionListener(this);s5=new JButton(" 5 "); s5.addActionListener(this);s6=new JButton(" 6 "); s6.addActionListener(this);s7=new JButton(" 7 "); s7.addActionListener(this);s8=new JButton(" 8 "); s8.addActionListener(this);s9=new JButton(" 9 "); s9.addActionListener(this);s0=new JButton(" 0 "); s0.addActionListener(this);b1=new JButton(" + "); b1.addActionListener(this);b2=new JButton(" - "); b2.addActionListener(this);b3=new JButton(" * "); b3.addActionListener(this);b4=new JButton(" / "); b4.addActionListener(this);f1=new JButton(" . "); f1.addActionListener(this);f2=new JButton(" = "); f2.addActionListener(this);jPanel2.add(s1);jPanel2.add(s2);jPanel2.add(s3);jPanel2.add(b1);jPanel2.add(s4);jPanel2.add(s5);jPanel2.add(s6);jPanel2.add(b2);jPanel2.add(s7);jPanel2.add(s8);jPanel2.add(s9);jPanel2.add(b3);jPanel2.add(s0);jPanel2.add(f1);jPanel2.add(f2);jPanel2.add(b4);con.add(jPanel2,BorderLayout.CENTER);}public void num(int i){String s = null;s=String.valueOf(i);if(end){//如果数字输入结束,则将文本框置零,重新输入resultField.setText("0");end=false;}if((resultField.getText()).equals("0")){//如果文本框的内容为零,则覆盖文本框的内容resultField.setText(s);}else{//如果文本框的内容不为零,则在内容后面添加数字str = resultField.getText() + s;resultField.setText(str);}}public void actionPerformed(ActionEvent e){ //数字事件 if(e.getSource()==s1)num(1);else if(e.getSource()==s2)num(2);else if(e.getSource()==s3)num(3);else if(e.getSource()==s4)num(4);else if(e.getSource()==s5)num(5);else if(e.getSource()==s6)num(6);else if(e.getSource()==s7)num(7);else if(e.getSource()==s8)num(8);else if(e.getSource()==s9)num(9);else if(e.getSource()==s0)num(0);//符号事件else if(e.getSource()==b1)sign(1);else if(e.getSource()==b2)sign(2);else if(e.getSource()==b3)sign(3);else if(e.getSource()==b4)sign(4);//等号else if(e.getSource()==f1){str=resultField.getText();if(str.indexOf(".")<=1){str+=".";resultField.setText(str);}}else if(e.getSource()==f2){num2=Double.parseDouble(resultField.getText());if(add){num1=num1 + num2;}else if(sub){num1=num1 - num2;}else if(mul){num1=num1 * num2;}else if(div){num1=num1 / num2;}resultField.setText(String.valueOf(num1));end=true;}}public void sign(int s){if(s==1){add=true;sub=false;mul=false;div=false;}else if(s==2){add=false;sub=true;mul=false;div=false;}else if(s==3){add=false;sub=false;mul=true;div=false;}else if(s==4){add=false;sub=false;mul=false;div=true;}num1=Double.parseDouble(resultField.getText()); end=true;}public static void main(String[] args){testZ th1=new testZ();th1.show();}}。

计算器设计java版的源代码

计算器设计java版的源代码

这是用java编写的计算器的源代码,界面粗糙,在elipse中运行通过,就两个类:第一个类frame ,代码如下package jisuanqi;import java.awt.Color;import java.awt.Container;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.Point;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JTextField;public class frame {static double aa=0;//寄存器static int bb=0;//判断是否为连续输入运算符static int cc=0;static char dd='d';//记录前一次运算符的值public static void main(String args[]){JFrame fm=new JFrame("计算器");fm.setSize(220,180);//fm.setMaximumSize(null);fm.setLocation(new Point(200,100));fm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Container container=fm.getContentPane();GridBagLayout layout=new GridBagLayout();container.setLayout(layout);GridBagConstraints gg=new GridBagConstraints();JTextField txt=new JTextField("0");txt.setHorizontalAlignment(JTextField.RIGHT);txt.setEditable(false);txt.setBackground(Color.white);gg.gridx=0;gg.gridy=0;gg.fill=GridBagConstraints.HORIZONTAL;gg.gridheight=1;gg.gridwidth=15;container.add(txt,gg);gg.fill=GridBagConstraints.NONE;gg.gridy=1;gg.gridwidth=2;JButton btn7=new JButton("7");Mylistener mylistener7 =new Mylistener(btn7.getText(),txt);btn7.addActionListener(mylistener7);container.add(btn7,gg);JButton btn8=new JButton("8");Mylistener mylistener8 =new Mylistener(btn8.getText(),txt); btn8.addActionListener(mylistener8);gg.gridx=2;container.add(btn8,gg);JButton btn9=new JButton("9");Mylistener mylistener9 =new Mylistener(btn9.getText(),txt); btn9.addActionListener(mylistener9);gg.gridx=4;container.add(btn9,gg);JButton btnc=new JButton("/");gg.gridx=6;container.add(btnc,gg);Mylistener mylistenerc =new Mylistener(btnc.getText(),txt); btnc.addActionListener(mylistenerc);JButton btnb=new JButton("B");gg.gridx=8;container.add(btnb,gg);Mylistener mylistenerb =new Mylistener(btnb.getText(),txt); btnb.addActionListener(mylistenerb);gg.gridx=0;gg.gridy=2;JButton btn4=new JButton("4");Mylistener mylistener4 =new Mylistener(btn4.getText(),txt); btn4.addActionListener(mylistener4);container.add(btn4,gg);JButton btn5=new JButton("5");gg.gridx=2;Mylistener mylistener5 =new Mylistener(btn5.getText(),txt); btn5.addActionListener(mylistener5);container.add(btn5,gg);JButton btn6=new JButton("6");gg.gridx=4;Mylistener mylistener6 =new Mylistener(btn6.getText(),txt); btn6.addActionListener(mylistener6);container.add(btn6,gg);JButton btncf=new JButton("*");gg.gridx=6;Mylistener mylistenercf =new Mylistener(btncf.getText(),txt); btncf.addActionListener(mylistenercf);container.add(btncf,gg);gg.gridx=8;Mylistener mylistenerce =new Mylistener(btnce.getText(),txt); btnce.addActionListener(mylistenerce);container.add(btnce,gg);gg.gridx=0;gg.gridy=3;JButton btn1=new JButton("1");container.add(btn1,gg);Mylistener mylistener1 =new Mylistener(btn1.getText(),txt); btn1.addActionListener(mylistener1);JButton btn2=new JButton("2");gg.gridx=2;Mylistener mylistener2 =new Mylistener(btn2.getText(),txt); btn2.addActionListener(mylistener2);container.add(btn2,gg);JButton btn3=new JButton("3");gg.gridx=4;Mylistener mylistener3 =new Mylistener(btn3.getText(),txt); btn3.addActionListener(mylistener3);container.add(btn3,gg);JButton btnjf=new JButton("-");gg.gridx=6;Mylistener mylistenerjf =new Mylistener(btnjf.getText(),txt); btnjf.addActionListener(mylistenerjf);container.add(btnjf,gg);JButton btncc=new JButton("C");gg.gridx=8;Mylistener mylistenercc =new Mylistener(btncc.getText(),txt); btncc.addActionListener(mylistenercc);container.add(btncc,gg);gg.gridx=0;gg.gridy=4;JButton btn0=new JButton("0");container.add(btn0,gg);Mylistener mylistenero =new Mylistener(btn0.getText(),txt); btn0.addActionListener(mylistenero);JButton btnqf=new JButton("+/-");gg.gridx=2;Mylistener mylistenerqf =new Mylistener(btnqf.getText(),txt); btnqf.addActionListener(mylistenerqf);container.add(btnqf,gg);gg.gridx=4;Mylistener mylistenerd =new Mylistener(btnd.getText(),txt);btnd.addActionListener(mylistenerd);container.add(btnd,gg);JButton btnjiaf=new JButton("+");gg.gridx=6;Mylistener mylistenerfff =new Mylistener(btnjiaf.getText(),txt);btnjiaf.addActionListener(mylistenerfff);container.add(btnjiaf,gg);JButton btndy=new JButton("=");gg.gridx=8;container.add(btndy,gg);Mylistener mylistenerdy =new Mylistener(btndy.getText(),txt);btndy.addActionListener(mylistenerdy);fm.setVisible(true);}}第二个类Mylistener 代码如下:package jisuanqi;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JTextField;public class Mylistener implements ActionListener {private String a;//button上的值private JTextField txt;//txt的引用Mylistener(String aa,JTextField txt){//构造方法this.a=aa;this.txt=txt;}void init(){frame.aa=0;//寄存器frame.bb=0;//判断是否为连续输入运算符=0;frame.dd='d';//记录前一次运算符的值this.txt.setText("0");}public void actionPerformed(ActionEvent e){System.out.println(a);if(a=="0"| a=="1"| a=="2" | a=="3"| a=="4"| a=="5"| a=="6"| a=="7" | a=="8" | a=="9" | a=="."){if(frame.bb!=0){this.txt.setText("0");frame.bb=0;}System.out.println("数字"+"b"+frame.bb);if(this.txt.getText().length()==1){//当前文本框里的字符串的长度为一if(a=="."){//当前输入为小数点this.txt.setText(this.txt.getText()+".");}else{//当前输入不为小数点if(this.txt.getText()=="0" & this.a=="0"){this.txt.setText("0");}else if(this.txt.getText().charAt(0)=='0'& this.a!="0"){this.txt.setText(a);}else if(this.txt.getText().charAt(0) != '0'){this.txt.setText(this.txt.getText()+a);}}}else{//当前文本框里的字符串的长度不为一if(a=="."){//当前输入是. 就查找txt的值中有不有 .if(this.txt.getText().indexOf('.')== -1){//没出现.this.txt.setText(this.txt.getText()+a);}else {//原字符串不变}}else{this.txt.setText(this.txt.getText()+a);}}}//**************************************************if(a=="+" | a=="-" | a=="*" | a=="/" ){frame.bb++;if(this.txt.getText().charAt(this.txt.getText().length()-1)=='.'){//处理以.结尾的字符串this.txt.setText(this.txt.getText().substring(0,this.txt.getText().length ()-1));}//如果字符串以.结尾就把字符串的最后以为抹去if(==0){//第一次输入运算符frame.aa=Double.valueOf(this.txt.getText()).doubleValue();=1;frame.dd=this.a.charAt(0);//记录前一次输入运算符的值}else{//在这里面进行四则运算//加法运算if(frame.dd=="+".charAt(0)){frame.aa+=Double.valueOf(this.txt.getText()).doubleValue();this.txt.setText(String.valueOf(frame.aa).toString());frame.dd=this.a.charAt(0);}else if(frame.dd=="-".charAt(0)){frame.aa-=Double.valueOf(this.txt.getText()).doubleValue();this.txt.setText(String.valueOf(frame.aa).toString());frame.dd=this.a.charAt(0);}else if(frame.dd=="*".charAt(0)){frame.aa*=Double.valueOf(this.txt.getText()).doubleValue();this.txt.setText(String.valueOf(frame.aa).toString());frame.dd=this.a.charAt(0);}else if(frame.dd=="/".charAt(0)){if(this.txt.getText().charAt(0)=="0".charAt(0)){//除零是不允许的System.out.println("被除数不能为零");this.init();}else{doubleff=Double.valueOf(this.txt.getText()).doubleValue();frame.aa=frame.aa/ff;this.txt.setText(String.valueOf(frame.aa).toString());frame.dd=this.a.charAt(0);}}}}if(a=="B"){if(this.txt.getText().length()==1 ){this.txt.setText("0");}if(this.txt.getText().length()!=1 &this.txt.getText().charAt(0)!='0'){this.txt.setText(this.txt.getText().substring(0,this.txt.getText().length ()-1));}}if(a=="+/-"){if(this.txt.getText().charAt(0)!='-'){this.txt.setText("-"+this.txt.getText());}else{this.txt.setText(this.txt.getText().substring(1));}}if(a=="E"){this.init();}if(a=="C"){this.txt.setText("0");}if(a=="="){if(!=0){if(frame.dd=="+".charAt(0)){frame.aa+=Double.valueOf(this.txt.getText()).doubleValue();this.txt.setText(String.valueOf(frame.aa).toString());//frame.dd=this.a.charAt(0);}else if(frame.dd=="-".charAt(0)){frame.aa-=Double.valueOf(this.txt.getText()).doubleValue();this.txt.setText(String.valueOf(frame.aa).toString());//frame.dd=this.a.charAt(0);}else if(frame.dd=="*".charAt(0)){frame.aa*=Double.valueOf(this.txt.getText()).doubleValue();this.txt.setText(String.valueOf(frame.aa).toString());//frame.dd=this.a.charAt(0);}else if(frame.dd=="/".charAt(0)){if(this.txt.getText().charAt(0)=="0".charAt(0)){//除零是不允许的System.out.println("被除数不能为零");this.init();}else{doubleff=Double.valueOf(this.txt.getText()).doubleValue();frame.aa=frame.aa/ff;this.txt.setText(String.valueOf(frame.aa).toString());//frame.dd=this.a.charAt(0);}}frame.aa=0;//寄存器frame.bb=1;//判断是否为连续输入运算符=0;frame.dd='d';}}}}。

java简单计算器源代码

java简单计算器源代码

简单计算器代码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”". ”"=”JButt on butt on plus,butt onminu s,butt onm ultiple,butt on devisi on,butto nsi n,butt on tozero;// 新建按钮“ +”-""“ * ”" / 和归零按钮JButton butt onon e,butt on two,button three,butt on four,button five,butt on six,butt on seve n,butt on eight,butt onnine;// 新建数字“0”“1 ”“ 2”“ 3”“ 4”“ 5”“ 6”“ 7”“ 8”“ 9”JPa nel pan elwest,pa nelce nter,pa neleast;/新建三个面板TextField tf;//新建文本区域对象public CalcultorThree(){//初始化对象tf=new TextField(30);//构造空文本字段,字符宽度为30frame =new JFrame("CalculatorThree");// 构造窗体对象,名称为“ CalculatorThreepan elce nter= new JPan el();〃构造面板,放到窗体中央pan elwest=new JPa nel();〃构造面板,放到窗体西边pan eleast =new JPa nel();〃构造面板,放到窗体东边Handle h=new Handle();〃新建Handle类对象,Handle类为事件监听类//创建数字按钮对象,1、2、3、4、5、6、7、& 9butt onon e=new JButto n( "1");butto ntwo=new JButto n( "2");butto nthree=new JButto n( "3");butto nfour= new JButto n( "4");butt on five=new JButto n( "5");butto nsix=new JButto n( "6");butt on seve n=new JButt on ("7");butto neight=new JButt on ("8");butt onnin e=new JButt on ("9");panelcenter.setLayout(new GridLayout(3,3));〃设置面板布局为网格布局, 3 行3 列〃将数字按钮添加到中间面板pan elce nter.add(butt onon e);pan elce nter.add(butt on two);pan elce nter.add(butt on three);pan elce nter.add(butt on four);pan elce nter.add(butt on five);pan elce nter.add(butt on six);pan elce nter.add(butt on seve n);pan elce nter.add(butt on eight);pan elce nter.add(butt onnin e);//为10个按钮注册事件监听器butt onon e.addAct ion Liste ner(h);butt on two.addAct ion Liste ner(h);butt on three.addAct ion Liste ner(h);butt on four.addActi on Liste ner(h);butt on five.addAct ion Liste ner(h);butt on six.addAct ion Liste ner(h);butt on seve n. addActi on Liste ner(h);butt on eight.addAct ion Liste ner(h);butt onnin e.addAct ion Liste ner(h);//构造按钮“ 0”“ .',注册事件监听器,设置1行3列的布局,添加到到西边的面板butto nzero=new JButt on ("0");butto ndot =new JButt on (".");butt on equal=new JButt on ("=");butt on zero.addAct ion Liste ner(h);butt on dot.addActi on Liste ner(h);butt on equal.addActi on Liste ner(h);pan elwest.setLayout (new GridLayout(3,1));pan elwest.add(butt on zero);pan elwest.add(butt on dot);pan elwest.add(butt on equal);//构造操作按钮“ +”-”““ *”“/”“sin其'中“>00为归零按钮butto nplus=n ew JButto n("+");butt onminus=new JButt on ("-");butto nmultiple=new JButt on ("*");butt on devisi on=new JButt on ("/");butt onsin=new JButt on ("s in ”);butto ntozero=n ew JButto n( ">0");paneleast.setLayout(new GridLayout(3,1));// 设置西边的布局为3 行1 列〃将操作按钮“ +”- ” ““ * ”“ / ”“添n加到西边的面板中pan eleast.add(butt on plus);pan eleast.add(butt onminu s);pan eleast.add(butt onm ultiple);pan eleast.add(butt on devisi on);pan eleast.add(butt onsin);pan eleast.add(butt on tozero);//为操作按钮“ +”-” ““ * ”“ / ”“注册监听貓”butt on plus.addAct ion Liste ner(h);butt onminu s.addAct ion Liste ner(h);butt onm ultiple.addAct ion Liste ner(h);butt on devisi on .addAct ion Liste ner(h);butt onsin. addActi on Liste ner(h);butt on tozero.addActi on Liste ner(h);frame.setLayout(new BorderLayout());// 设置窗体为边界布局frame.add(pa neleast,"East");〃将东边面板pan eleast添加到窗体的东边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( Stri ng[] args) {new CalcultorThree();//主方法中新建对象}class Han die impleme nts Actio nListe ner{〃实现动作监听器类int biaozhi=0;〃此标志标志加减乘除操作double flag1=0,flag2=0,flag3=0;//flag1、flag2 为两个操作数,flag3 为结果@Overridepublic void action Performed(Act ionEvent e) { // 方法重写try{//此处可能会产生异常,用try、catch捕捉异常,不用处理if(e.getSource()==buttondot){〃小数点tf.setText("O.");}if(e.getSource()==buttontozero){// 归零操作tf.setText(””);}if(e.getSource()==buttonzero){〃按键0 操作tf.setText(tf.getText()+"0");flag仁Double.parseDouble(tf.getText());〃将文本区域转换成Double 类型, 赋给flag1}if(e.getSource()==buttonone){// 按键1 操作tf.setText(tf.getText()+"1");flag 仁Double.parseDouble(tf.getText());}else if(e.getSource()==buttontwo){〃按键2 操作tf.setText(tf.getText()+"2");flag 仁Double.parseDouble(tf.getText());}else if(e.getSource()==buttonthree){〃按键3 操作tf.setText(tf.getText()+"3");flag 仁Double.parseDouble(tf.getText());}else if(e.getSource()==buttonfour){〃按键4 操作tf.setText(tf.getText()+"4");flag 仁Double.parseDouble(tf.getText());}else if(e.getSource()==buttonfive){// 按键5 操作tf.setText(tf.getText()+"5");flag 仁Double.parseDouble(tf.getText());}else if(e.getSource()==buttonsix){// 按键6 操作tf.setText(tf.getText()+"6");flag 仁Double.parseDouble(tf.getText());}else if(e.getSource()==buttonseven){〃按键7 操作tf.setText(tf.getText()+"7");flag仁Double.parseDouble(tf.getText());}else if(e.getSource()==buttoneight){〃按键8 操作tf.setText(tf.getText()+"8");flag 仁Double.parseDouble(tf.getText());}else if(e.getSource()==buttonnine){// 按键9 操作tf.setText(tf.getText()+"9");flag 仁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.s in( 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(Excepti on ex){}}}}。

计算器的Java源代码

计算器的Java源代码

计算器程序的源代码import java.awt.*;import java.awt.event.*;import javax.swing.*;public class Calculator extends Frame implements ActionListener, WindowListener{private Container container;private GridBagLayout layout;private GridBagConstraints constraints;private JTextField displayField; //计算结果显示区private String lastCommand; //保存+,-,*,/,=命令0private double result; //保存计算结果private boolean start; //判断是否为数字的开始private JMenuBar menubar;private JMenuItem m_exit,m2_ejz,m2_bjz;private Dialog dialog;private Label label_dialog;private JButton button_sqrt,button_plusminus,button_CE,button_cancel,button_1,button_2,button_3,button_4,button_5,button_6,button_7,button_8,button_9,button_0, button_plus,button_minus,button_multiply,button_divide,button_point,button_equal,button_log,button_tan,button_cos,button_sin,button_exp;public Calculator() //构造方法设置布局、为按钮注册事件监听器{super("Calculator");this.setLocation(240,200);this.setSize(350,300);this.setResizable(true);this.setLayout(new GridLayout(7,1));this.addmyMenu(); //调用成员方法添加菜单displayField=new JTextField(30);this.add(displayField);displayField.setEditable(true);start=true;result=0;lastCommand = "=";JPanel panel0=new JPanel();panel0.setLayout(new GridLayout(1,4,4,4));JPanel panel1=new JPanel();panel1.setLayout(new GridLayout(1,5,4,4));this.add(panel1);button_sqrt=new JButton("sqrt");button_plusminus=new JButton("+/-");button_exp=new JButton("exp");button_CE=new JButton("C");button_cancel=new JButton("CE");JPanel panel2=new JPanel();panel2.setLayout(new GridLayout(1,5,4,4));this.add(panel2);button_7=new JButton("7");button_8=new JButton("8");button_9=new JButton("9");button_log=new JButton("log");button_divide=new JButton("/");JPanel panel3=new JPanel();panel3.setLayout(new GridLayout(1,5,4,4));this.add(panel3);button_4=new JButton("4");button_5=new JButton("5");button_6=new JButton("6");button_tan=new JButton("tan");button_multiply=new JButton("*");JPanel panel4=new JPanel();panel4.setLayout(new GridLayout(1,5,4,4));this.add(panel4);button_1=new JButton("1");button_2=new JButton("2");button_3=new JButton("3");button_cos=new JButton("cos");button_minus=new JButton("-");JPanel panel5=new JPanel();panel5.setLayout(new GridLayout(1,5,4,4));this.add(panel5);button_0=new JButton("0");button_point=new JButton(".");button_equal=new JButton("=");button_sin=new JButton("sin");button_plus=new JButton("+");panel1.add(button_sqrt);panel1.add(button_plusminus);panel1.add(button_exp);panel1.add(button_CE);panel1.add(button_cancel);panel2.add(button_7);panel2.add(button_8);panel2.add(button_9);panel2.add(button_log);panel2.add(button_divide);panel3.add(button_4);panel3.add(button_5);panel3.add(button_6);panel3.add(button_tan);panel3.add(button_multiply);panel4.add(button_1);panel4.add(button_2);panel4.add(button_3);panel4.add(button_cos);panel4.add(button_minus);panel5.add(button_0);panel5.add(button_point);panel5.add(button_equal);panel5.add(button_sin);panel5.add(button_plus);button_sqrt.addActionListener(this);button_plusminus.addActionListener(this);button_exp.addActionListener(this);button_CE.addActionListener(this);button_cancel.addActionListener(this);button_7.addActionListener(this);button_8.addActionListener(this);button_9.addActionListener(this);button_log.addActionListener(this);button_divide.addActionListener(this);button_4.addActionListener(this);button_5.addActionListener(this);button_6.addActionListener(this);button_tan.addActionListener(this);button_multiply.addActionListener(this);button_1.addActionListener(this);button_2.addActionListener(this);button_3.addActionListener(this);button_cos.addActionListener(this);button_minus.addActionListener(this);button_0.addActionListener(this);button_point.addActionListener(this);button_equal.addActionListener(this);button_sin.addActionListener(this);button_plus.addActionListener(this);this.addWindowListener(new WinClose()); //注册窗口监听器this.setVisible(true);}private void addmyMenu() //菜单的添加{JMenuBar menubar=new JMenuBar();this.add(menubar);JMenu m1=new JMenu("选项");JMenu m2=new JMenu("进制转换");JMenuItem m1_exit=new JMenuItem("退出");m1_exit.addActionListener(this);JMenuItem m2_ejz=new JMenuItem("二进制");m2_ejz.addActionListener(this);JMenuItem m2_bjz=new JMenuItem("八进制");m2_bjz.addActionListener(this);JMenu m3 = new JMenu(" 帮助");JMenuItem m3_Help = new JMenuItem("作者");m3_Help.addActionListener(this);dialog = new Dialog(this,"关于",true); //模式窗口 dialog.setSize(240,80);label_dialog = new Label("",Label.CENTER); //标签的字符串为空,居中对齐dialog.add(label_dialog);dialog.addWindowListener(this); //为对话框注册窗口事件监听器m1.add(m1_exit);menubar.add(m1);m2.add(m2_ejz);m2.add(m2_bjz);menubar.add(m2);m3.add(m3_Help);menubar.add(m3); }public void actionPerformed(ActionEvent e) //按钮的单击事件处理方法{if(e.getSource().equals(button_1)||e.getSource().equals(button_2)||e.getSource().equals(button_3)||e.getSource().equals(button_4)||e.getSource().equals(button_5)|| e.getSource().equals(button_6)||e.getSource().equals(button_7)|| e.getSource().equals(button_8)||e.getSource().equals(button_9) ||e.getSource().equals(button_0)||e.getSource().equals(button_point)||e.getSource().equals(button_plusmin us)||e.getSource().equals(button_cancel)||e.getSource().equals(button_CE)){ //非运算符的处理方法String input=e.getActionCommand();if (start){displayField.setText("");start=false;if(input.equals("+/-"))displayField.setText(displayField.getText()+"-");}if(!input.equals("+/-")){String str=displayField.getText();if(input.equals("C")) //退格键的实现方法{if(str.length()>0)displayField.setText(str.substring(0,str.length()-1));}else if(input.equals("CE")) //清零键的实现方法{displayField.setText("0");start=true;}elsedisplayField.setText(displayField.getText()+input);}}else if (e.getActionCommand()=="二进制") //二进制的转换{int n=Integer.parseInt(displayField.getText());displayField.setText(Integer.toBinaryString(n));}else if (e.getActionCommand()=="八进制") //八进制的转换{int n=Integer.parseInt(displayField.getText());displayField.setText(Integer.toOctalString(n));}else if (e.getActionCommand()=="退出") //选项中退出的处理方法{System.exit(0);}else if (e.getActionCommand()=="作者") //按下'帮助'菜单栏中用法的处理方法{label_dialog.setText("熊瑛琪制作 \n学号:080320618");dialog.setLocation(400,250);dialog.setVisible(true);}else //各运算符的识别{String command=e.getActionCommand();if(start){lastCommand=command;}else{calculate(Double.parseDouble(displayField.getText()));lastCommand=command;start=true;}}}public void calculate(double x) //各运算符的具体运算方法 {double d=0;if (lastCommand.equals("+"))result+= x;else if (lastCommand.equals("-"))result-=x;else if (lastCommand.equals("*"))result*=x;else if (lastCommand.equals("/"))result/=x;else if (lastCommand.equals("="))result=x;else if (lastCommand.equals("sqrt")){d=Math.sqrt(x);result=d;}else if (lastCommand.equals("exp")){d=Math.exp(x);result=d;}else if (lastCommand.equals("log")){d=Math.log(x);result=d;}else if (lastCommand.equals("tan")){d=Math.tan(x);result=d;}else if (lastCommand.equals("cos")){d=Math.cos(x);result=d;}else if (lastCommand.equals("sin")){d=Math.sin(x);result=d;}displayField.setText(""+ result);}public void windowClosing(WindowEvent e){if(e.getSource()==dialog)dialog.setVisible(false); //隐藏对话框elseSystem.exit(0);}public void windowOpened(WindowEvent e) { }public void windowActivated(WindowEvent e) { }public void windowDeactivated(WindowEvent e) { }public void windowClosed(WindowEvent e) { }public void windowIconified(WindowEvent e) { }public void windowDeiconified(WindowEvent e) { }public static void main(String args[]){Calculator calculator=new Calculator();}}class WinClose implements WindowListener{public void windowClosing(WindowEvent e) //单击窗口关闭按钮时触发并执行实现窗口监听器接口{System.exit(0); //结束程序运行}public void windowOpened(WindowEvent e){}public void windowActivated(WindowEvent e){}public void windowDeactivated(WindowEvent e){}public void windowClosed(WindowEvent e){}public void windowIconified(WindowEvent e){}public void windowDeiconified(WindowEvent e){}}程序运行在对程序进行测试时发现“sin”函数出现异常点击“sin”然后输入“90”出现以下情况经过对程序代码的检查发现在下面方法中public void calculate(double x) //各运算符的具体运算方法{double d=0;if (lastCommand.equals("+"))result+= x;else if (lastCommand.equals("-"))result-=x;else if (lastCommand.equals("*"))result*=x;else if (lastCommand.equals("/"))result/=x;else if (lastCommand.equals("="))result=x;else if (lastCommand.equals("sqrt")){d=Math.sqrt(x);result=d;}else if (lastCommand.equals("exp")){d=Math.exp(x);result=d;}else if (lastCommand.equals("log")){d=Math.log(x);result=d;}else if (lastCommand.equals("tan")){d=Math.tan(x);result=d;}else if (lastCommand.equals("cos")){d=Math.cos(x);result=d;}displayField.setText(""+ result); }发现遗漏以下代码else if (lastCommand.equals("sin")){d=Math.sin(x);result=d;}修改后再次进行测试输入“1.5707963”(约为0.5*pi)再键入“sin”得以下结果可见程序修改成功。

计算器java 源代码

计算器java 源代码
else if(e.getSource()==mat_sin)
presssin();
else if(e.getSource()==mat_tan)
presstan();
else if(e.getSource()==mat_cos)
presscos();
else if(e.getSource()==do_ans)
p0=new Panel(); //显示屏的布局
p0.setLayout(g0);
p0.add(number);
p0.setBounds(50,20,600,70);//左50上20长600宽70
//按纽的布局
p1=new Panel();
p1.setLayout(g1);
p1.add(num_1);//第一排按纽
p1.add(num_7);//第三排按纽
p1.add(num_8);
p1.add(num_9);
p1.add(mat_sin);
p1.add(mat_cos);
பைடு நூலகம்
p1.add(num_0);//第四排按钮
p1.add(num_p);
p1.add(do_ans);
p1.add(do_dele);
//定义各个控件的样式
number=new JTextField(20);//构造宽度为20个字符的文本框
number.setHorizontalAlignment(JTextField.RIGHT); //设置水平对齐方式
number.setEnabled(true);
number.setText("0");
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

import java.awt.*;import java.awt.event.*;import javax.swing.*;public class test{public static void main(String args[] ){jisuan frame = new jisuan();//新建一个jisuan类对象frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//为该对象设置默认关闭动作frame.setResizable(false);//设置不可调整大小frame.show();//将该框架对象显示出来}}class jisuan extends JFrame implements ActionListener//jisuan类继承自JFrame类{private JMenuBar menubar = new JMenuBar();private JMenu m1 = new JMenu("文件(field)");private JMenu m2 = new JMenu("编辑(education)");private JMenu m3 = new JMenu("帮助(help)");//新建菜单栏private JMenuItem t2,t3,t4,t7,t8;private JPanel j1,j2;private JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9;private JButton kaigen,qiuyu,pingfang,zengxuan,yuxuan ,jiecheng,jia,jian,cheng,chu,dengyu;private Container contenPane = this.getContentPane();//获取当前的内容窗格private JTextField p1,p2;private JLabel j0;private double tem1 = 0;private double tem2 = 0;private double tem3 = 0;private int biaozhi=0;public jisuan() //构造函数{super.setTitle("简单计算器");//设置标题super.setSize(640,200);//设置尺寸super.setJMenuBar(menubar);menubar.add(m1);menubar.add(m2);menubar.add(m3);t2 = new JMenuItem("全部清零");t3 = new JMenuItem("打开圆周率");t4 = new JMenuItem("退出");m1.add(t2);m1.add(t3);m1.add(t4);t7 = new JMenuItem("写字本");m2.add(t7);t8 = new JMenuItem("关于....");m3.add(t8);j1 = new JPanel();p1 = new JTextField(40);p1.setEditable(false);j0 = new JLabel("请输入要计算的数字:");// p2 = new JTextField("请输入计算的数字",10); // p3 = new JTextField("结果是",10);// p3.setEditable(false);j1.add(j0);j1.add(p1);// j1.add(p2);// j1.add(p3);j2 = new JPanel();GridLayout f = new GridLayout(3,7);//新建一个布局管理器对象j2.setLayout(f);//将布局管理器对象加入到面板中b0 = new JButton("0");b1 = new JButton("1");b2 = new JButton("2");b3 = new JButton("3");b4 = new JButton("4");b5 = new JButton("5");b6 = new JButton("6");b7 = new JButton("7");b8 = new JButton("8");b9 = new JButton("9");// j3 = new JPanel();j2.add(b0);j2.add(b1);j2.add(b2);j2.add(b3);j2.add(b4);j2.add(b5);j2.add(b6);j2.add(b7);j2.add(b8);j2.add(b9);jia = new JButton("+");jian = new JButton("-");cheng = new JButton("*");chu = new JButton("/");kaigen = new JButton("立方根");qiuyu = new JButton("平方根");pingfang = new JButton("平方"); zengxuan = new JButton("sin");yuxuan = new JButton("cos");jiecheng = new JButton("阶乘");dengyu = new JButton("=");j2.add(jia);j2.add(jian);j2.add(cheng);j2.add(chu);j2.add(kaigen);j2.add(qiuyu);j2.add(pingfang);j2.add(zengxuan);j2.add(yuxuan);j2.add(jiecheng);j2.add(dengyu);contenPane.add(j2,BorderLayout.CENTER); //将j2添加到内容窗格中同时为其指定位置contenPane.add(j1,BorderLayout.NORTH); b0.addActionListener(this);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);jia.addActionListener(this);jian.addActionListener(this);cheng.addActionListener(this);chu.addActionListener(this);kaigen.addActionListener(this);qiuyu.addActionListener(this); pingfang.addActionListener(this); zengxuan.addActionListener(this); yuxuan.addActionListener(this);jiecheng.addActionListener(this);dengyu.addActionListener(this);//为按钮添加事件监听器t2.addActionListener(this);t3.addActionListener(this);t4.addActionListener(this);t7.addActionListener(this);t8.addActionListener(this);//JMenuItem类对象添加事件监听器}public void actionPerformed(ActionEvent e) {if(e.getSource()==b0){p1.setText("0");j1.add(p1);tem1 = 0;}else if(e.getSource() == b1){p1.setText("1");j1.add(p1);tem1 = 1;}else if(e.getSource() == b2){p1.setText("2");j1.add(p1);tem1 = 2;}else if(e.getSource() == b3){p1.setText("3");j1.add(p1);tem1 = 3;}else if(e.getSource() == b4){p1.setText("4");j1.add(p1);tem1 = 4;}else if(e.getSource() == b5){p1.setText("5");j1.add(p1);tem1 = 5;}else if(e.getSource() == b6) {p1.setText("6");j1.add(p1);tem1 = 6;}else if(e.getSource() == b7) {p1.setText("7");j1.add(p1);tem1 = 7;}else if(e.getSource() == b8) {p1.setText("8");j1.add(p1);tem1 = 8;}else if(e.getSource() == b9) {p1.setText("9");j1.add(p1);tem1 = 9;}if(e.getSource()==jia){p1.setText(tem1+"+");j1.add(p1);tem2 = tem1;biaozhi = 0;}if(e.getSource()==jian){p1.setText(tem1+"-");j1.add(p1);tem2 = tem1;biaozhi = 1;}if(e.getSource()==cheng){p1.setText(tem1+"*");j1.add(p1);tem2 = tem1;biaozhi = 2;}if(e.getSource()==chu){p1.setText(tem1+"/");j1.add(p1);tem2 = tem1;biaozhi = 3;}if(e.getSource()==kaigen){p1.setText(tem1+"立方根"); j1.add(p1);tem2 = tem1;biaozhi = 4;}if(e.getSource()==qiuyu){p1.setText(tem1+"平方根"); j1.add(p1);tem2 = tem1;biaozhi = 5;}if(e.getSource()==pingfang){p1.setText(tem1+"平方"); j1.add(p1);tem2 = tem1;biaozhi = 6;}if(e.getSource()==zengxuan){p1.setText(tem1+"sina"); j1.add(p1);tem2 = tem1;biaozhi = 7;}if(e.getSource()==yuxuan){p1.setText(tem1+"cosa");j1.add(p1);tem2 = tem1;biaozhi = 8;}if(e.getSource()==jiecheng){p1.setText(tem1+"!");j1.add(p1);tem2 = tem1;biaozhi = 9;}if(e.getSource()==dengyu){if(biaozhi ==0){tem3 = tem2+tem1;}if(biaozhi ==1){tem3 = tem2-tem1;}if(biaozhi ==2){tem3 = tem2*tem1;}if(biaozhi ==3){tem3 = tem2/tem1;}if(biaozhi ==4){tem3 =Math.cbrt(tem1); }if(biaozhi ==5){tem3 =Math.sqrt(tem1); }if(biaozhi ==6){tem3 = tem1*tem1;}if(biaozhi ==7){tem3 = Math.sin(tem1);}if(biaozhi ==8){tem3 = Math.cos(tem1);}if(biaozhi ==9){tem3 = jisuanjiecheng(tem1);}p1.setText("="+tem3);j1.add(p1);}else if(e.getSource()==t2){p1.setText("0.0");j1.add(p1);}else if(e.getSource()==t3){p1.setText(Math.PI+"");j1.add(p1);}else if(e.getSource()==t4){System.exit(0);}else if(e.getSource()==t8){helpFile myhelpfile=new helpFile(); myhelpfile.show();}else if(e.getSource()==t7){repaint();jishiben mynewjisuan=new jishiben(); mynewjisuan.show();}}//实现监听器private double jisuanjiecheng(double a){if(a==1) return 1;//递归出口else return (jisuanjiecheng(a-1)*a);//实现递归计算阶乘}}class jishiben extends JFrame//实现记事本类{private Container contenPane1 = getContentPane();private JTextArea text = new JTextArea();private JButton tuibutton;private JPanel ji1,ji2;public jishiben(){super.setTitle("文本编辑器");//设置标题super.setSize(300,200);//设置尺寸ji1 = new JPanel();ji2 = new JPanel();text = new JTextArea("请输入你要记录的文字",7,20);//行数为5列数为20text.setLineWrap(true);//为文本框设置可回绕,即满行之后自动实现换行tuibutton = new JButton("退出");tuibutton.addActionListener(new tuiActionListener()); ji1.add(text);ji2.add(tuibutton);contenPane1.add(ji2,BorderLayout.SOUTH);contenPane1.add(ji1,BorderLayout.NORTH);}private class tuiActionListener implements ActionListener {public void actionPerformed(ActionEvent e){setVisible(false);}}}class helpFile extends JFrame//实现帮助文档类{private Container contenPane1 = getContentPane();private JTextArea text = new JTextArea();private JButton tuibutton;private JPanel textPane,buttonPane;public helpFile(){super.setTitle("帮助文档");//设置标题super.setSize(300,200);//设置尺寸textPane = new JPanel();buttonPane = new JPanel();text = new JTextArea("请输入你要记录的文字",7,20);//行数为5列数为20text.setLineWrap(true);//为文本框设置可回绕,即满行之后自动实现换行text.setText(" 这个计算器实现简单的一位数的运算,附带了一个记事本的功能。

相关文档
最新文档