导航:首页 > 编程语言 > java计算器计算代码

java计算器计算代码

发布时间:2023-03-04 11:42:16

java 编写计算器 要代码最简单的

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class CalculatorB implements ActionListener {
private JFrame frame;

private JTextField field;

private JButton[] allButtons;

private JButton clearButton;

// 构造初始化 成员变量
public CalculatorB() {
frame = new JFrame("Calculator v1.1");
field = new JTextField(25);
allButtons = new JButton[16];
String str = "123+456-789*0.=/";
for (int i = 0; i < 16; i++) {
allButtons[i] = new JButton(str.substring(i, i + 1));
}
clearButton = new JButton("CLEAR");
// 调用界面的初始化方法
init();
// 调用设置文本框的字体和颜色 方法
setFontAndColor();
addEventHandler();
}

public void addEventHandler() {
for (int i = 0; i < allButtons.length; i++) {
allButtons[i].addActionListener(this);
clearButton.addActionListener(this);
}
}

private String op = null;

private String m = null;

private String n = null;

private boolean cls = false;

private void setResult() {
if (field.getText().equals("")) {
cls = true;
m = null;
n = null;
} else if (m != null) {
n = field.getText();
if (op.equals("+")) {
field.setText(Double.parseDouble(m) + Double.parseDouble(n)
+ "");
} else if (op.equals("-")) {
field.setText(Double.parseDouble(m) - Double.parseDouble(n)
+ "");
} else if (op.equals("*")) {
field.setText(Double.parseDouble(m) * Double.parseDouble(n)
+ "");
} else if (op.equals("/")) {
field.setText(Double.parseDouble(m) / Double.parseDouble(n)
+ "");
}
cls = true;
m = null;
n = null;
}

}

public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand();// 得到被点的按钮名称
if ("0123456789.".indexOf(str) != -1) {
if (cls) {
field.setText("");
cls = false;
}
field.setText(field.getText() + str);
} else if ("+-*/".indexOf(str) != -1) {
if (field.getText().equals("")) {
op = str;
} else if (m == null) {
m = field.getText();
op = str;
field.setText("");
} else if (m != null) {
setResult();
m = field.getText();
op = str;
}

} else if (str.equals("=")) {
setResult();
} else if (str.equals("CLEAR")) {
field.setText("");
m = null;
n = null;
}
}

public void init() {
frame.setLayout(new BorderLayout());
JPanel northPannel = new JPanel();
JPanel centerPannel = new JPanel();
JPanel southPannel = new JPanel();
northPannel.setLayout(new FlowLayout());
centerPannel.setLayout(new GridLayout(4, 4));
southPannel.setLayout(new FlowLayout());
northPannel.add(field);
southPannel.add(clearButton);
for (int i = 0; i < allButtons.length; i++) {
centerPannel.add(allButtons[i]);
}
frame.add(northPannel, BorderLayout.NORTH);
frame.add(southPannel, BorderLayout.SOUTH);
frame.add(centerPannel, BorderLayout.CENTER);

}

public void setFontAndColor() {
field.setFont(new Font("宋体", Font.BOLD, 20));
field.setForeground(Color.PINK);
field.setBackground(new Color(0x2a, 0x3b, 0x4f));
}

public void showMe() {
frame.pack(); // 系统调整大小---很重要
// frame.setSize(600, 400);// 自定义窗体大小
frame.setLocation(500, 400);// 设置窗体的启动位置
frame.setResizable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(3);
}

public static void main(String[] args) {
new CalculatorB().showMe();
}

}

以上代码是我的原创回答,可以直接运行的代码。并且此计算器可以实现连续计算,楼主试试去,有什么意见和建议再提

② 用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;
}
else
text1.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");
else
result=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编一个计算器的代码

用Applet还是用Application?

我以前老师好像也布置过一个计算器是Applet的

import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

//import com.sun.org.apache.xerces.internal.impl.xpath.regex.ParseException;

public class calculator extends Applet implements ActionListener {

/**
*
*/
//private static final long serialVersionUID = 3114597813287650283L;
/* (non-Javadoc)
* @see java.applet.Applet#init()
*/
public int operator = 1; //运算符判断:1-加,2-减,3-乘,4-除;
public double accumulator=0; //运算的累加器;
public double digit = 0;
public boolean bool = true;
public boolean boolca = false;
public String text="0.0";

/*窗体控件*/
public JTextField tf_AccepteData = new JTextField();
public Button bt_Digit;
public Button bt_dot = new Button(".");
public Button bt_add = new Button("+");
public Button bt_plus = new Button("-");
public Button bt_mul = new Button("*");
public Button bt_div = new Button("/");
public Button bt_equal = new Button("=");
public Button bt_clear = new Button("C");
public Button bt_inverse = new Button("1/x");
public Button bt_non = new Button("+/-");
public Button bt_sqrt = new Button("sqrt");

public double scan()
{
text = tf_AccepteData.getText();
try{
digit = Double.parseDouble(text);
}catch(Exception msg){
msg.printStackTrace();
}
return digit;
}
public void accumulate()
{
if(!tf_AccepteData.getText().equals("")){
switch(operator){
case 1:
accumulator += digit;
tf_AccepteData.setText("" + accumulator);
break;
case 2:
accumulator -= digit;
tf_AccepteData.setText("" + accumulator);
break;
case 3:
accumulator *= digit;
tf_AccepteData.setText("" + accumulator);
break;
case 4:
if(digit == 0){
tf_AccepteData.setText("除数不能为零");
operator = 1;
accumulator = 0;
bool = true;
digit = 0;
text="";
}else{
accumulator /=digit;
tf_AccepteData.setText("" + accumulator);
}
break;
default:
break;
}
operator = 1;
}
}

public void init() {
/*初始化窗体*/
setLayout(null);
setSize(225,200);
setBackground(Color.orange);
add(tf_AccepteData);
tf_AccepteData.setHorizontalAlignment(SwingConstants.RIGHT);
tf_AccepteData.setSize(200, 25);
tf_AccepteData.setLocation(10, 10);
tf_AccepteData.setEnabled(false);
tf_AccepteData.setText("0.0");
text = tf_AccepteData.getText();
for(int i= 0; i<=9; i++){
bt_Digit = new Button("" + i);
add(bt_Digit);
bt_Digit.setSize(30, 30);
if(i>=7&&i<=9)
bt_Digit.setLocation((15+40*(i-7)), 50);
if(i>=4&&i<=6)
bt_Digit.setLocation((15+40*(i-4)), 85);
if(i>=1&&i<=3)
bt_Digit.setLocation((15+40*(i-1)), 120);
if(i==0)
bt_Digit.setLocation(15, 155);
bt_Digit.addActionListener(this);
}
/*
* 小数点
*/
add(bt_dot);
bt_dot.setSize(30, 30);
bt_dot.setLocation(95, 155);
bt_dot.addActionListener(this/*new ActionListener()*/);/*{
public void actionPerformed(ActionEvent e) {
}
});*/
/*
* 加法运算
*/
add(bt_add);
bt_add.setSize(30, 30);
bt_add.setLocation(135, 155);
bt_add.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {

accumulate();
operator = 1;
bool =true;
boolca = true;
digit = 0;
}
});
/*
* 减法运算
*/
add(bt_plus);
bt_plus.setSize(30, 30);
bt_plus.setLocation(135, 120);
bt_plus.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
accumulate();
operator = 2;
bool =true;
boolca = true;
digit = 0;
}
});
/*
* 乘法运算
*/
add(bt_mul);
bt_mul.setSize(30, 30);
bt_mul.setLocation(135, 85);
bt_mul.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
accumulate();
operator = 3;
bool =true;
boolca = true;
digit = 1;
}
});
/*
* 除法运算
*/
add(bt_div);
bt_div.setSize(30, 30);
bt_div.setLocation(135, 50);
bt_div.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
accumulate();
operator = 4;
bool =true;
boolca = true;
digit = 1;
}
});
/*
* 倒数
*/
add(bt_inverse);
bt_inverse.setSize(30, 30);
bt_inverse.setLocation(175, 120);
bt_inverse.addActionListener(new ActionListener(){
double data=0;
public void actionPerformed(ActionEvent e) {
data = scan();
if(digit==0){
tf_AccepteData.setText("取倒分母不能为零!");
operator = 1;
accumulator = 0;
bool = true;
digit = 0;
text="";
}else{
tf_AccepteData.setText("" + 1.0/data);
}
if(!boolca)
operator = 1;
}
});
/*
* 数学平方根
*/
add(bt_sqrt);
bt_sqrt.setSize(30, 30);
bt_sqrt.setLocation(175, 85);
bt_sqrt.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
scan();
if(digit<0){
tf_AccepteData.setText("函数输入无效!");
operator = 1;
accumulator = 0;
bool = true;
digit = 0;
text="";
}else{
digit = Math.sqrt(digit);
tf_AccepteData.setText("" + digit);
}
if(!boolca)
operator = 1;
}
});
/*
* 取反
*/
add(bt_non);
bt_non.setSize(30, 30);
bt_non.setLocation(55, 155);
bt_non.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
try{
digit = -Double.parseDouble(tf_AccepteData.getText());
tf_AccepteData.setText("" + digit);
}catch(Exception msg){
msg.printStackTrace();
}
if(!boolca)
operator = 1;
}
});
/*
* 等于
*/
add(bt_equal);
bt_equal.setSize(30, 30);
bt_equal.setLocation(175, 155);
bt_equal.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
accumulate();
operator = 1;
bool =true;
digit = 0;
}
});
/*
* 清零运算
*/
add(bt_clear);
bt_clear.setSize(30, 30);
bt_clear.setLocation(175, 50);
bt_clear.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e) {
operator = 1;
accumulator = 0;
bool = true;
digit = 0;
text="";
tf_AccepteData.setText("0.0");
}
});
}
public void actionPerformed(ActionEvent e){
if(bool){
tf_AccepteData.setText("");
bool = false;
}
text = tf_AccepteData.getText();
if((text+e.getActionCommand()).indexOf(".")!=(text+e.getActionCommand()).lastIndexOf(".")) return;
text += e.getActionCommand();
if(text.equals("."))
text = "0"+text;
tf_AccepteData.setText(text);
scan();
}
}

还要写一个CalculatorTest.html网页文件代码如下,写好双击运行CalculatorTest.html就可以了

<!-------------------------CalculatorTest.html ------------------------>

<HTML>
<HEAD>
<TITLE>
小应用程序——一个简单的计算器模型
</TITLE>
</HEAD>

<BODY bgcolor = blue text = yellow >
<center>
<marquee behavior=alternate width = 300 height = 40><br>实现加、减、乘、除四种基本运算</marquee>
<br><br><br>
<APPLET ALIGN = middle CODE = "calculator.class" WIDTH = 225 HEIGHT = 200></APPLET>
<br><br><br>
<input type = button value = " 退出 " onClick="javascript:window.close()">
</center>
<BR>
</BODY>
</HTML>

④ JAVA简单咋做,计算器代码

简单写了下,代码如下请参照:

/**
*计算器类
*
*@authorAdministrator
*
*/
{

=3868243398506940702L;

//文本框
privateJTextFieldresult;
//按钮数组
privateJButton[]buttons;
//按钮文本
privatefinalString[]characters={"7","8","9","/","4","5","6",
"*","1","2","3","-","0",".","=","+"};
//是否为第一个输入的数字
privatebooleanisFirstDigit=true;
//运算结果
privatedoubleresultNum=0.0;
//运算符
privateStringoperator="=";

publicCalculator(Stringtitle){
//设置标题栏
super(title);
//初始化各组件
init();
//注册各组件监听器
registerListener();

//显示窗体
setVisible(true);
}

/**
*初始化各组件
*/
privatevoidinit(){
//常用属性初始化
setSize(220,200);
setResizable(false);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);

/*文本框对象初始化*/
result=newJTextField("0");
//文本右对齐
result.setHorizontalAlignment(JTextField.RIGHT);
//设置是否可编辑
result.setEditable(false);
/*按钮初始化*/
buttons=newJButton[characters.length];
for(inti=0;i<buttons.length;i++){
buttons[i]=newJButton(characters[i]);
buttons[i].setFocusable(false);//不允许按钮定位焦点
}
/*将文本框与按钮添加到窗体中*/
add(result,BorderLayout.NORTH);
JPanelpnl=newJPanel(newGridLayout(4,4,5,5));
for(JButtonjButton:buttons){
pnl.add(jButton);
}
add(pnl);

this.getContentPane().setFocusable(true);
}

/**
*注册监听器
*/
privatevoidregisterListener(){
for(JButtonjButton:buttons){
jButton.addActionListener(this);
}

//注册键盘事件
this.getContentPane().addKeyListener(newKeyAdapter(){
@Override
publicvoidkeyPressed(KeyEvente){
Stringtext=String.valueOf(e.getKeyChar());
if(Character.isDigit(text.charAt(0))||".".equals(text)){//数字或小数点
handleNumber(text);
}elseif("+-*/=".indexOf(text)!=-1){//运算符
handleOperator(text);
}elseif(e.getKeyCode()==8){//退格键
Stringtmp=result.getText().trim();
if(tmp.length()==1){
result.setText("0");
isFirstDigit=true;
}else{
result.setText(tmp.substring(0,tmp.length()-1));
}
}
}
});
}

@Override
publicvoidactionPerformed(ActionEvente){
JButtonbtn=(JButton)e.getSource();
Stringtext=btn.getText().trim();

if(Character.isDigit(text.charAt(0))||".".equals(text)){//处理数字和小数点
handleNumber(text);
}else{//处理运算符
handleOperator(text);
}
}

/**
*处理数字和小数点
*
*@paramtext
*/
privatevoidhandleNumber(Stringtext){
if(isFirstDigit){//第一次输入
if(".".equals(text)){
this.result.setText("0.");
}else{
this.result.setText(text);
}
}elseif("0".equals(text)&&"0".equals(this.result.getText())){
isFirstDigit=true;
return;
}elseif(".".equals(text)&&this.result.getText().indexOf(".")==-1){
this.result.setText(this.result.getText()+".");
}elseif(!".".equals(text)){
this.result.setText(this.result.getText()+text);
}

isFirstDigit=false;
}

/**
*处理运算符
*
*@paramtext
*/
privatevoidhandleOperator(Stringtext){
switch(operator){//处理各项运算适用于JDK1.7版本
case"+":
resultNum+=Double.parseDouble(this.result.getText());
break;
case"-":
resultNum-=Double.parseDouble(this.result.getText());
break;
case"*":
resultNum*=Double.parseDouble(this.result.getText());
break;
case"/":
resultNum/=Double.parseDouble(this.result.getText());
break;
case"=":
resultNum=Double.parseDouble(this.result.getText());
break;
}
//将文本框的值修改为运算结果
this.result.setText(String.valueOf(resultNum));
//将点击的运算符放入operator保存
operator=text;
//下一个数字第一次点击
isFirstDigit=true;
}

publicstaticvoidmain(String[]args){
newCalculator("MyCalculator");
}
}

运行结果如下:

阅读全文

与java计算器计算代码相关的资料

热点内容
javapoi导出excel 浏览:212
迷你编程迷小酷为什么邮箱里没有 浏览:33
ipadqq接收的文件在哪里 浏览:15
拼多多初级看哪些数据 浏览:848
win10开机密码屏幕键盘 浏览:162
文件夹乐高 浏览:914
外置文件夹挂载 浏览:304
人人视频本地缓存文件 浏览:194
java俄罗斯方块项目描述 浏览:354
win10系统被冻结 浏览:460
excel文件批量合并 浏览:948
linuxxmind 浏览:93
苹果电脑安全软件 浏览:195
u深度取消赞助密码 浏览:168
编程写东西都写得是什么 浏览:35
蔚来怎么推荐app 浏览:269
6s输入密码来使用siri 浏览:742
程序员黑客头像酷 浏览:739
mvc接受上传文件 浏览:365
程序员可以转金融吗 浏览:193

友情链接