
正文
java代码计算器类似 java计算器代码带注释
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
求一个仿真计算器,界面于真实计算器类似,功能简单,最好能有按键声音的java计算器代码。
import java.awt.*;
class jisuanqi
{
public static void main(String[] args)
{
Panel p1=new Panel();
Panel p2=new Panel();
Panel p3=new Panel();
Panel p4=new Panel();
Panel p5=new Panel();
Panel p6=new Panel();
TextField tf=new TextField(30);
tf.setEditable(false);
tf.setBackground(Color.WHITE);
p1.setLayout(new BorderLayout(3,3));
p1.add(p2,"North");
p1.add(p3,"Center");
p2.add(tf);
p3.setLayout(new BorderLayout(3,3));
p3.add(p4,"North");
p3.add(p5,"West");
p3.add(p6,"Center");
p4.setLayout(new GridLayout(1,3,3,3));
Button b1=new Button("Backspace");b1.setForeground(Color.red);
Button b2=new Button(" CE ");b2.setForeground(Color.red);
Button b3=new Button(" C ");b3.setForeground(Color.red);
p4.add(b1);
p4.add(b2);
p4.add(b3);
p5.setLayout(new GridLayout(4,1,3,3));
Button b4=new Button(" MC ");b4.setForeground(Color.red);
Button b5=new Button(" MR ");b5.setForeground(Color.red);
Button b6=new Button(" MS ");b6.setForeground(Color.red);
Button b7=new Button(" M+ ");b7.setForeground(Color.red);
p5.add(b4);
p5.add(b5);
p5.add(b6);
p5.add(b7);
p6.setLayout(new GridLayout(4,5,3,3));
String[] KEYS = { "7", "8", "9", "/", "sqrt", "4", "5", "6","*", "%", "1", "2", "3", "-", "1/x", "0", "+/-", ".", "+", "=" };
Button []keys=new Button[KEYS.length];
for (int i = 0; i KEYS.length; i++) {
keys[i] = new Button(KEYS[i]);
p6.add(keys[i]);
keys[i].setForeground(Color.blue);
}
//运算符键用红色标示java代码计算器类似,其java代码计算器类似他键用蓝色表示
keys[3].setForeground(Color.red);
keys[8].setForeground(Color.red);
keys[13].setForeground(Color.red);
keys[18].setForeground(Color.red);
keys[19].setForeground(Color.red);
Frame f=new Frame("计算器");
f.setBounds(200,200,250,200);
f.add(p1);
f.setResizable(false);
f.setVisible(true);
System.out.println("Hello World!");
}
}
相关问答
Q1: java编程,用代码实现计算器类(Calculator)
public class Calculator {
private int number1;
private int number2;
public Calculator(int number1, int number2) {
this.number1 = number1;
this.number2 = number2;
}
public double add() {
return number1 + number2;
}
public double subtract() {
return number1 - number2;
}
public double multiple() {
return number1 * number2;
}
public double divide() {
if(number2 == 0) {
return 0;
}
return number1 / number2;
}
}
public class TestCalculator {
public static void main(String[] args) {
Calculator calculator = new Calculator(5, 2);
System.out.println(calculator.add());
System.out.println(calculator.subtract());
System.out.println(calculator.multiple());
System.out.println(calculator.divide());
}
}
Q2: 用java设计并实现类似Windows中的计算器
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class calculator extends JFrame implements ActionListener
{//这里java代码计算器类似我把JFrame写成Framejava代码计算器类似,这个错误找了好久
JFrame frame;
private JButton jia=new JButton("+");
private JButton jian=new JButton("-");
private JButton cheng=new JButton("*");
private JButton chu=new JButton("/");
private JButton qiuyi=new JButton("%");
private JButton deng=new JButton("=");
private JButton fu=new JButton("+/-");
private JButton dian=new JButton(".");
private JButton kai=new JButton("sqrt");
private JButton diao=new JButton("1/x");
private JButton aa=new JButton("A");
private JButton bb=new JButton("B");
private JButton cc=new JButton("C");
private JButton dd=new JButton("D");
private JButton ee=new JButton("E");
private JButton ff=new JButton("F");
private TextField k1=new TextField();
private objConversion convert = new objConversion();
JMenuItem copy,paste,s,t,help,about,me;
JRadioButton sixteen,ten,eight,two;
JButton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;
Container cp;
JTextField text;
String copycontent="";
boolean clickable=true,clear=true;
int all=0;
double qian;
String fuhao;
int jin=10,first=1;
public calculator()
{
setTitle("计算器-杨彩制作");
setSize(400,300);
setLocation(250,200);
text=new JTextField(25);
// text.setEnabled(false);
text.setText("0.");
text.setHorizontalAlignment(JTextField.RIGHT);//从右到左
JPanel cp1=new JPanel();
JPanel cp2=new JPanel();
JPanel cp3=new JPanel();
cp=getContentPane();
cp.add(cp1,"North");
cp.add(cp2,"Center");
cp.add(cp3,"South");
cp1.setLayout(new GridLayout(1,6));
cp2.setLayout(new GridLayout(2,4));
cp3.setLayout(new GridLayout(6,6));
sixteen=new JRadioButton("十六进制");
sixteen.setVisible(false);
ten=new JRadioButton("十进制",true);
ten.setVisible(false);
eight=new JRadioButton("八进制");
eight.setVisible(false);
two=new JRadioButton("二进制");
two.setVisible(false);
sixteen.addActionListener(this);
ten.addActionListener(this);
eight.addActionListener(this);
two.addActionListener(this);
ButtonGroup btg=new ButtonGroup();
btg.add(sixteen);
btg.add(ten);
btg.add(eight);
btg.add(two);
JTextField t3=new JTextField(25);
cp1.add(text);
// text.setEnabled(false);
text.setEditable(false);
text.setBackground(new Color(255, 255, 255));
cp2.add(sixteen);
cp2.add(ten);
cp2.add(eight);
cp2.add(two);
backspace=new JButton("Backspace");
backspace.setForeground(new Color(255,0,0));
backspace.addActionListener(this);
ce=new JButton("CE");
ce.setForeground(new Color(255,0,0));
ce.addActionListener(this);
c=new JButton("C");
c.setForeground(new Color(255,0,0));
c.addActionListener(this);
k1.setVisible(false);
cp2.add(k1);
cp2.add(backspace);
cp2.add(ce);
cp2.add(c);
num0=new JButton("0");
num1=new JButton("1");
num2=new JButton("2");
num3=new JButton("3");
num4=new JButton("4");
num5=new JButton("5");
num6=new JButton("6");
num7=new JButton("7");
num8=new JButton("8");
num9=new JButton("9");
cp3.add(num7);
num7.addActionListener(this);
cp3.add(num8);
num8.addActionListener(this);
cp3.add(num9);
num9.addActionListener(this);
cp3.add(chu);
chu.setForeground(new Color(255,0,0));
chu.addActionListener(this);
cp3.add(kai);
kai.addActionListener(this);
cp3.add(num4);
num4.addActionListener(this);
cp3.add(num5);
num5.addActionListener(this);
cp3.add(num6);
num6.addActionListener(this);
cp3.add(cheng);
cheng.setForeground(new Color(255,0,0));
cheng.addActionListener(this);
cp3.add(qiuyi);
qiuyi.addActionListener(this);
cp3.add(num1);
num1.addActionListener(this);
cp3.add(num2);
num2.addActionListener(this);
cp3.add(num3);
num3.addActionListener(this);
cp3.add(jian);
jian.setForeground(new Color(255,0,0));
jian.addActionListener(this);
cp3.add(diao);
diao.addActionListener(this);
cp3.add(num0);
num0.addActionListener(this);
cp3.add(fu);
fu.addActionListener(this);
cp3.add(dian);
dian.addActionListener(this);
cp3.add(jia);
jia.setForeground(new Color(255,0,0));
jia.addActionListener(this);
cp3.add(deng);
deng.setForeground(new Color(255,0,0));
deng.addActionListener(this);
cp3.add(aa);
aa.addActionListener(this);
cp3.add(bb);
bb.addActionListener(this);
cp3.add(cc);
cc.addActionListener(this);
cp3.add(dd);
dd.addActionListener(this);
cp3.add(ee);
ee.addActionListener(this);
cp3.add(ff);
ff.addActionListener(this);
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);
JMenuBar mainMenu = new JMenuBar();
setJMenuBar(mainMenu);
JMenu editMenu = new JMenu("编辑");
JMenu viewMenu = new JMenu("查看");
JMenu helpMenu = new JMenu("帮助");
mainMenu.add(editMenu);
mainMenu.add(viewMenu);
mainMenu.add(helpMenu);
copy = new JMenuItem(" 复制");
paste = new JMenuItem(" 粘贴");
KeyStroke copyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);
copy.setAccelerator(copyks);//设置退出菜单选项加上快捷键
KeyStroke pasteks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);
paste.setAccelerator(pasteks);//设置退出菜单选项加上快捷键
editMenu.add(copy);
editMenu.add(paste);
copy.addActionListener(this);
paste.addActionListener(this);
t = new JMenuItem("●标准型");
s = new JMenuItem(" 科学型");
viewMenu.add(t);
viewMenu.add(s);
t.addActionListener(this);
s.addActionListener(this);
help = new JMenuItem(" 帮助主题");
about = new JMenuItem(" 关于计算器");
me = new JMenuItem(" 作者主页");
helpMenu.add(help);
helpMenu.add(about);
helpMenu.add(me);
help.addActionListener(this);
about.addActionListener(this);
me.addActionListener(this);
addWindowListener(new WindowDestroyer());//结束窗口
}
public void actionPerformed(ActionEvent e)
{//响应动作代码
if(first==1)
text.setText("");
first=0;//第一次把文本框0.清空
Object temp = e.getSource();
if(temp==copy)
{
copycontent = text.getText();
}
if(temp==paste)
{
text.setText(text.getText()+copycontent);
}
if(temp==t)
{//标准
sixteen.setVisible(false);
ten.setVisible(false);
eight.setVisible(false);
two.setVisible(false);
t.setText("●标准型");
s.setText(" 科学型");
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);
}
if(temp==s)
{//科学
sixteen.setVisible(true);
ten.setVisible(true);
eight.setVisible(true);
two.setVisible(true);
t.setText(" 标准型");
s.setText("●科学型");
aa.setVisible(true);
bb.setVisible(true);
cc.setVisible(true);
dd.setVisible(true);
ee.setVisible(true);
ff.setVisible(true);
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
}
if(temp==help)
{ //打开系统帮助文件 要查资料
try
{
String filePath = "C:/WINDOWS/Help/calc.chm";
Runtime.getRuntime().exec("cmd.exe /c "+filePath);
}
catch(Exception eeee)
{
System.out.println("打开系统的计算器出错");
}
}
if(temp==about)
{
JOptionPane.showMessageDialog(frame," Java计算器 杨彩 制作 ","关于计算器",JOptionPane.INFORMATION_MESSAGE); ;
}
if(temp==me)
{
try
{
Process p = Runtime.getRuntime().exec("explorer ");
}
catch(Exception eeee)
{
System.out.println("打开指定网页出错");
}
}
try
{
if(temp==sixteen)
{
String hex=text.getText();
int inthex=Integer.parseInt(hex,jin);//先把数变为10进制
text.setText(convert.decHex(inthex)) ;
jin=16;
aa.setEnabled(true);
bb.setEnabled(true);
cc.setEnabled(true);
dd.setEnabled(true);
ee.setEnabled(true);
ff.setEnabled(true);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);
}
if(temp==eight)
{
String oct =text.getText();
int intoct=Integer.parseInt(oct,jin);
text.setText(convert.decOct(intoct)) ;
jin=8;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==two)
{
String bin=text.getText();
int intbin=Integer.parseInt(bin,jin);
text.setText(convert.decBin(intbin));
jin=2;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(false);
num3.setEnabled(false);
num4.setEnabled(false);
num5.setEnabled(false);
num6.setEnabled(false);
num7.setEnabled(false);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==ten)
{
String dec=text.getText();
int intdec=Integer.parseInt(dec,jin);
// text.setText(convert.decDec(intdec)); //本句会把123变成321
text.setText(intdec+"");
jin=10;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);
}
}
catch(Exception ee)
{
System.out.println("转换出错,可能你没有输入任何字符");
text.setText("转换出错");
clear=false;
}
if(temp==backspace)
{//退格
String s = text.getText();
text.setText("");
for (int i = 0; i s.length() - 1; i++)
{
char a = s.charAt(i);
text.setText(text.getText() + a);
}
}
if (temp==ce)
{
text.setText("0.");
clear=true;
first=1;
}
if (temp==c)
{
text.setText("0."); ;
clear=true;
first=1;
}
if(temp==num0)
{
if(clear==false)//判断是否点击了符号位
text.setText("");
text.setText(text.getText()+"0");
}
if(temp==num1)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"1");
clear=true;//第二次不在清空(前二句)
}
if(temp==num2)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"2");
clear=true;
}
if(temp==num3)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"3");
clear=true;
}
if(temp==num4)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"4");
clear=true;
}
if(temp==num5)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"5");
clear=true;
}
if(temp==num6)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"6");
clear=true;
}
if(temp==num7)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"7");
clear=true;
}
if(temp==num8)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"8");
clear=true;
}
if(temp==num9)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"9");
clear=true;
}
if(temp==aa)
{
text.setText(text.getText()+"A");
}
if(temp==bb)
{
text.setText(text.getText()+"B");
}
if(temp==cc)
{
text.setText(text.getText()+"C");
}
if(temp==dd)
{
text.setText(text.getText()+"D");
}
if(temp==ee)
{
text.setText(text.getText()+"E");
}
if(temp==ff)
{
text.setText(text.getText()+"F");
}
if(temp==dian)
{
clickable=true;
for (int i = 0; i text.getText().length(); i++)
if ('.' == text.getText().charAt(i))
{
clickable=false;
break;
} //第一层判断是否里面含有小数点;
if(clickable==true)//第二坛判断
text.setText(text.getText()+".");
}
try
{
if(temp==jia)
{//加法
qian=Double.parseDouble(text.getText());
fuhao="+";
clear=false;
}
if(temp==jian)
{
qian=Double.parseDouble(text.getText());
fuhao="-";
clear=false;
;
}
if(temp==cheng)
{
qian=Double.parseDouble(text.getText());
fuhao="*";
clear=false;
}
if(temp==chu)
{
qian=Double.parseDouble(text.getText());
fuhao="/";
clear=false;
}
if(temp==deng)
{
double ss=Double.parseDouble(text.getText());
text.setText("");
if(fuhao=="+")
text.setText(qian+ss+"");
if(fuhao=="-")
text.setText(qian-ss+"");
if(fuhao=="*")
text.setText(qian*ss+"");
if(fuhao=="/")
text.setText(qian/ss+"");
clear=false;//要清空前一次的数据
;
}
if(temp==kai)
{
String s = text.getText();
if (s.charAt(0) == '-')
{
text.setText("负数不能开根号");
}
else
text.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(text.getText()))));
clear=false;
}
if(temp==diao)
{
if (text.getText().charAt(0) == '0'text.getText().length() == 1)
{
text.setText("除数不能为零");
}
else
{
boolean isDec = true;
int i, j, k;
String s = Double.toString(1 / Double.parseDouble(text.getText()));
for (i = 0; i s.length(); i++)
if (s.charAt(i) == '.')
break;
for (j = i + 1; j s.length(); j++)
if (s.charAt(j) != '0')
{
isDec = false;
break;
}
if (isDec == true)
{
String stemp = "";
for (k = 0; k i; k++)
stemp += s.charAt(k);
text.setText(stemp);
}
else
text.setText(s);
}
clear=false;
}
if(temp==qiuyi)
{
text.setText("0");
clear=false;
}
if (temp == fu)
{ //导师java代码计算器类似,此方法参考书中例子
boolean isNumber = true;
String s = text.getText();
for (int i = 0; i s.length(); i++)
if (! (s.charAt(i) = '0' s.charAt(i) = '9' || s.charAt(i) == '.' ||
s.charAt(i) == '-'))
{
isNumber = false;
break;
}
if (isNumber == true)
{
//如果当前字符串首字母有'-'号,代表现在是个负数,再按下时,则将首符号去掉
if (s.charAt(0) == '-')
{
text.setText("");
for (int i = 1; i s.length(); i++)
{
char a = s.charAt(i);
text.setText(text.getText() + a);
}
}
//如果当前字符串第一个字符不是符号,则添加一个符号在首字母处
else
text.setText('-' + s);
}
}
}
catch(Exception eee)
{
System.out.println("运算时,首先输入数字或字符");
text.setText("运算出错");
clear=false;
}
}
class WindowDestroyer extends WindowAdapter
{//退出窗口动作
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
class objConversion
{//导师,本进制类参考了CSMD类转换例子
public void objConversion ()
{
}
public String decDec (int decNum)
{//10
String strDecNum = Integer.toString(decNum);
for (int i = strDecNum.length(); i 3; i++)
{
strDecNum = "0" + strDecNum;
}
// return strDecNum;
return invert (strDecNum, 5);
}
public String decHex (int decNum)
{//10 to 16
String strHexNum = "";
int currentNum = 0;
while (decNum != 0)
{
if (decNum 15)
{
currentNum = decNum % 16;
decNum /= 16;
}
else
{
currentNum = decNum;
decNum = 0;
}
switch (currentNum)
{
case 15: strHexNum += "F";
break;
case 14: strHexNum += "E";
break;
case 13: strHexNum += "D";
break;
case 12: strHexNum += "C";
break;
case 11: strHexNum += "B";
break;
case 10: strHexNum += "A";
break;
default: strHexNum += Integer.toString(currentNum);
break;
}
}
return invert (strHexNum, 2);
}
public String decOct (int decNum)
{//10 to 8
String strOctNum = "";
while (decNum != 0)
{
if (decNum 7)
{
strOctNum += Integer.toString(decNum % 8);
decNum /= 8;
}
else
{
strOctNum += Integer.toString(decNum);
decNum = 0;
}
}
return invert (strOctNum, 3);
}
public String decBin (int decNum)
{//10 to 2
String strBinNum = "";
while (decNum != 0)
{
if (decNum 1)
{
strBinNum += Integer.toString(decNum % 2);
decNum /= 2;
}
else
{
strBinNum += Integer.toString(decNum);
decNum = 0;
}
}
return invert (strBinNum, 8);
}
private String invert (String strNum, int minLength) //转换长度
{
String answer = "";
int length = strNum.length();
if (length minLength)
{
for (int padding = (minLength - length); padding 0; padding--)
{
answer += "0";
}
}
for (int i = length; i 0; i--)
{
answer += strNum.charAt (i - 1);
}
return answer;
}
}
public static void main(String arg[])//产生窗口
{
calculator win = new calculator();
win.setVisible(true);
}
}
Q3: 用Java做一个类似于这样的计算器界面(必须有0-9和加减乘除等号,其他随意) 主要要求就是希望下
以前写过的一份,仅供参考:
import java.awt.*;
import java.awt.event.*;
import java.math.BigDecimal;
import javax.swing.*;
//创建计算器Calculator类,实现ActionListener接口
public class Calculater implements ActionListener {
//定义变量和按钮数组
private String[] names = {"Backspace","CE","C","+","7","8","9","-",
"4","5","6","*","1","2","3","/","0","+/-",".","="
};
private JButton[] buttonArray = new JButton[names.length];
private boolean append = false;//默认追加为false
private String operator = "+";//默认运算符为“+”
private String s1 = "0";//默认字符为0
private String ss = "0";//默认字符为0
//创建可以显示20个字符的文本框
JTextField jtf = new JTextField(20);
//构造方法
public Calculater() {}
public Calculater(String title) {
//创建窗口、面板,并设置面板布局为网格布局
JFrame jf = new JFrame(title);
JPanel jp = new JPanel();
jp.setLayout(new GridLayout(5,4));
//依次添加按钮到面板中,并为按钮注册监听器
for (int i = 0; i buttonArray.length; i++) {
buttonArray[i] = new JButton(names[i]);
buttonArray[i].addActionListener(this);
jp.add(buttonArray[i]);
}
//添加文本框到窗体中
jf.add(jtf,BorderLayout.NORTH);
jf.add(jp);//添加面板到窗体中
jtf.setHorizontalAlignment(JTextField.RIGHT);//设置文本框的水平方向为右
jtf.setText("0");//设置初始文本为0
jtf.setEditable(false);//设置文本框为不可编辑状态
//设置窗体属性
jf.pack();//系统自动设置大小和位置
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//实现监听接口的actionPerformed方法
public void actionPerformed(ActionEvent e) {
String comm = e.getActionCommand();
if(comm.matches("\\d")) { //用正则表达式判断输出的是否是0~9
if(append) { //如果是,追加显示
String temp = jtf.getText();
jtf.setText(temp + comm);
} else { //如果不是,显示该字符并将追加设置为true
jtf.setText(comm);
append = true;
}
} else if(comm.equals(".")) { //输入小数点时
String temp = jtf.getText();
if(temp.indexOf(".")== -1 append) { //当输入的文本中没有小数点时
jtf.setText(temp+comm);
append = true; //输入小数点后继续追加
} else if(!append) { //当字符串开始时候先输入 " . " 则直接输出" 0. "
jtf.setText("0"+comm);
append = true;
}
} else if("+-*/".indexOf(comm)!= -1) { //输入加减乘除符号时,
//以下运算应该注意数据类型,尤其是大数字和浮点数及int数在运算中的区别
operator = comm;
s1 = jtf.getText();
double d3 = Double.parseDouble(s1);
double d4 = Double.parseDouble(ss);
BigDecimal bd3 = new BigDecimal(d3+"");
BigDecimal bd4 = new BigDecimal(d4+"");
if(operator.equals("+")) { //加法时
d3 = bd3.add(bd4).doubleValue();
ss = d3+"";
jtf.setText(ss);
} else if(operator.equals("-")) { //减法时
if(d4 == 0.0) {
ss = s1;
jtf.setText(ss);
} else {
d3 = bd4.subtract(bd3).doubleValue();
ss = d3+"";
jtf.setText(ss);
}
} else if(operator.equals("*")) { //乘法时
if(d4 == 0.0) {
ss = s1;
jtf.setText(ss);
} else {
d3 = bd3.multiply(bd4).doubleValue();
ss = d3+"";
jtf.setText(ss);
}
} else if(operator.equals("/")) { //除法时
if(d4 == 0.0) {
ss = s1;
jtf.setText(s1);
} else {
d3 = bd4.divide(bd3,15,BigDecimal.ROUND_HALF_UP).doubleValue();
}
ss = d3+"";
jtf.setText(ss);
}
append = false; //不继续追加
} else if(comm.equals("=")) { //输入等号时,计算加减乘除的结果
String s2 = jtf.getText();
double d1 = Double.parseDouble(ss);
double d2 = Double.parseDouble(s2);
BigDecimal bd1 = new BigDecimal(d1+"");
BigDecimal bd2 = new BigDecimal(d2+"");
if(operator.equals("+")) {
d1 = bd1.add(bd2).doubleValue();
} else if(operator.equals("-")) {
d1 = bd1.subtract(bd2).doubleValue();
} else if(operator.equals("*")) {
d1 = bd1.multiply(bd2).doubleValue();
} else if(operator.equals("/")) { //精确计算浮点除法
if(d2!=0.0) {
d1 = bd1.divide(bd2,15,BigDecimal.ROUND_HALF_UP).doubleValue();
}
}
ss = "0";
jtf.setText(d1+"");
append = false; //不继续追加
} else if(comm.equals("CE")||comm.equals("C")) { //输入CE或C时
jtf.setText("0");
ss = "0";
append = false;
} else if(comm.equals("+/-")) { //改变数值的正负号
String temp = jtf.getText();
if(!append) {
jtf.setText("-");
append = true;
} else if(temp.startsWith("-")) { //如果字符串以负号开头
jtf.setText(temp.substring(1));
} else {
jtf.setText("-" + temp);
}
} else if(comm.equals("Backspace")) { //输入Backspace时,退回一个字符
String temp = jtf.getText();
if(temp.length()0)
jtf.setText(temp.substring(0,temp.length()-1));
}
}
//主方法
public static void main(String[] args) {
//创建名为Calculator的计算器对象
new Calculater("计算器");
}
}
运行效果:
关于java代码计算器类似和java计算器代码带注释的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







