导航:首页 > 编程语言 > java编程简易计算器

java编程简易计算器

发布时间:2025-03-29 22:49:39

A. 用java编写一个简单的计算器界面,并且可以实现加减乘除计算,很简单一个就可以了,还需要一个归零按

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Frame;
import java.awt.GridLayout;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;

public class Calculator {

public static void main(String[] args) {
Frame f = new Frame("Calculator");

final TextField tf = new TextField();
Panel p = new Panel();

f.setLayout(new BorderLayout());
f.add(tf, BorderLayout.NORTH);
f.add(p, BorderLayout.CENTER);

p.setLayout(new GridLayout(4, 4));

Button one = new Button("1");
Button two = new Button("2");
Button three = new Button("3");
Button four = new Button("4");
Button five = new Button("5");
Button six = new Button("6");
Button seven = new Button("7");
Button eight = new Button("8");
Button nine = new Button("9");
Button zero = new Button("0");
Button add = new Button("+");
Button sub = new Button("-");
Button mul = new Button("*");
Button div = new Button("/");
Button decimal = new Button(".");
final Button equal = new Button("=");

p.add(one);
p.add(two);
p.add(three);
p.add(four);
p.add(five);
p.add(six);
p.add(seven);
p.add(eight);
p.add(nine);
p.add(zero);
p.add(add);
p.add(sub);
p.add(mul);
p.add(div);
p.add(decimal);
p.add(equal);

final String[] ary = {"", null, ""};

class NumMouseListener implements MouseListener{

public void mouseClicked(MouseEvent e) {
String num = ((Button)e.getSource()).getLabel().trim();
if(ary[1] == null){
ary[0] = ary[0] + "" + num;
}else{
ary[2] = ary[2] + "" + num;
}

tf.setText(tf.getText() + "" + num);
}

public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}

}

one.addMouseListener(new NumMouseListener());
two.addMouseListener(new NumMouseListener());
three.addMouseListener(new NumMouseListener());
four.addMouseListener(new NumMouseListener());
five.addMouseListener(new NumMouseListener());
six.addMouseListener(new NumMouseListener());
seven.addMouseListener(new NumMouseListener());
eight.addMouseListener(new NumMouseListener());
nine.addMouseListener(new NumMouseListener());
zero.addMouseListener(new NumMouseListener());

class OperatotrMouseListener implements MouseListener{

public void mouseClicked(MouseEvent e) {
if(e.getSource() == equal){
try {
long result = calculate(Integer.parseInt(ary[0]), Integer.parseInt(ary[2]), ary[1]);
tf.setText(String.valueOf(result));

ary[0] = tf.getText();
ary[1] = null;
ary[2] = "";
} catch (Exception e1) {
e1.printStackTrace();
}
}else{
ary[1] = ((Button) e.getSource()).getLabel();

if(ary[0].length() > 0){
ary[2] = "";
}else{
ary[0] = String.valueOf(tf.getText());
}

tf.setText("");
}
}

private long calculate(int i, int j, String operator) throws Exception {
if(operator.equals("+")){
return i + j;
}else if(operator.equals("-")){
return i - j;
}else if(operator.equals("*")){
return i * j;
}else if(operator.equals("/")){
return i / j;
}else{
throw new Exception("Invalid operator.(Only +-/* accepted");
}
}

public void mouseEntered(MouseEvent e) {}
public void mouseExited(MouseEvent e) {}
public void mousePressed(MouseEvent e) {}
public void mouseReleased(MouseEvent e) {}
}

add.addMouseListener(new OperatotrMouseListener());
mul.addMouseListener(new OperatotrMouseListener());
div.addMouseListener(new OperatotrMouseListener());
sub.addMouseListener(new OperatotrMouseListener());
equal.addMouseListener(new OperatotrMouseListener());

f.addWindowListener(new WindowListener(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}

public void windowActivated(WindowEvent e) {}
public void windowClosed(WindowEvent e) {}
public void windowDeactivated(WindowEvent e) {}
public void windowDeiconified(WindowEvent e) {}
public void windowIconified(WindowEvent e) {}
public void windowOpened(WindowEvent e) {}
});

f.setVisible(true);
f.setBounds(200, 200, 250, 250);
f.validate();
}

}

B. 怎么用JAVA编程编写一个计算器

  1. 打开IED:打开自己java编程的软件,采用的是eclipse软件。

  2. 建立java工程。

  3. 编写类。

C. 求JAVA编写的 简易计算器程序,附上注释

1、首先准备好软件即eclipse和java,下载安装完成后打开eclipse。

D. 编写java application程序实现一个简易计算器

Java计算器源代码:

importjava.awt.*;

importjava.awt.event.*;

importjavax.swing.*;

/**********************Java计算器主类*********************/

{

JFramef;

JMenumEdit;

JMenumView;

JMenumHelp;

JMenuItemmCopy;

JMenuItemmPaste;

JTextFieldtResult;

JButtonbNumber;

JButtonbOperator;

JButtonbOther;

JButtonbM;

booleanisDouble=false;//是否为实数

intopFlag=-1;

staticdoublet1=0,t2=0,t3=0,result=0;

staticintopflag1=-1,opflag2=-1,flag=0,resflag=1;

intpreOp,currentOp=0;//标准位

doubleop1=0,op2=0;//操作数

doublen3;

StringBufferbuf=newStringBuffer(20);

StringBufferBoard=newStringBuffer(20);//剪贴板

StringBuffermemory=newStringBuffer(20);//M系列

StringBufferstr=newStringBuffer();

//Java计算器构造器

publicSunnyCalculator()

{

f=newJFrame("Sunny计算器_杨梅树的盔甲");

ContainercontentPane=f.getContentPane();

/**************************Java计算器菜单的创建*****************************/

JMenuBarmBar=newJMenuBar();

mBar.setOpaque(true);

mEdit=newJMenu("编辑(E)");

mEdit.setMnemonic(KeyEvent.VK_E);

mCopy=newJMenuItem("复制(C)");

mEdit.add(mCopy);

mPaste=newJMenuItem("粘贴(P)");

mEdit.add(mPaste);

mView=newJMenu("查看(V)");

mView.setMnemonic(KeyEvent.VK_V);

mView.add(newJMenuItem("标准型"));

mView.add(newJMenuItem("科学型"));

mView.addSeparator();

mView.add(newJMenuItem("查看分组"));

mHelp=newJMenu("帮助(H)");

mHelp.setMnemonic(KeyEvent.VK_H);

mHelp.add(newJMenuItem("帮助主题"));

mHelp.addSeparator();

mHelp.add(newJMenuItem("关于计算器"));

mBar.add(mEdit);

mBar.add(mView);

mBar.add(mHelp);

f.setJMenuBar(mBar);

contentPane.setLayout(newBorderLayout());

JPanelpTop=newJPanel();

tResult=newJTextField("0.",26);

tResult.setHorizontalAlignment(JTextField.RIGHT);

tResult.setEditable(false);

pTop.add(tResult);

contentPane.add(pTop,BorderLayout.NORTH);

JPanelpBottom=newJPanel();

pBottom.setLayout(newBorderLayout());

JPanelpLeft=newJPanel();

pLeft.setLayout(newGridLayout(5,1,3,3));

bM=newJButton("");

bM.setEnabled(false);

pLeft.add(bM);

/*************************Java计算器功能键定义***************************/

bOther=newJButton("MC");

bOther.addActionListener(this);

bOther.setForeground(Color.red);

bOther.setMargin(newInsets(3,2,3,2));

pLeft.add(bOther);

bOther=newJButton("MR");

bOther.addActionListener(this);

bOther.setForeground(Color.red);

bOther.setMargin(newInsets(3,2,3,2));

pLeft.add(bOther);

bOther=newJButton("MS");

bOther.addActionListener(this);

bOther.setForeground(Color.red);

bOther.setMargin(newInsets(3,2,3,2));

pLeft.add(bOther);

bOther=newJButton("M+");

bOther.addActionListener(this);

bOther.setForeground(Color.red);

bOther.setMargin(newInsets(3,2,3,2));

pLeft.add(bOther);

pBottom.add(pLeft,BorderLayout.WEST);

JPanelpRight=newJPanel();

pRight.setLayout(newBorderLayout());

JPanelpUp=newJPanel();

pUp.setLayout(newGridLayout(1,3,3,0));

bOther=newJButton("BackSpace");

bOther.addActionListener(this);

bOther.setForeground(Color.red);

bOther.setMargin(newInsets(3,0,3,5));

pUp.add(bOther);

bOther=newJButton("CE");

bOther.addActionListener(this);

bOther.setForeground(Color.red);

pUp.add(bOther);

bOther=newJButton("C");

bOther.addActionListener(this);

bOther.setForeground(Color.red);

pUp.add(bOther);

/***************************Java计算器数字键盘区定义**************************/

JPanelpDown=newJPanel();

pDown.setLayout(newGridLayout(4,5,3,2));

bNumber=newJButton("7");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

pDown.add(bNumber);

bNumber=newJButton("8");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

pDown.add(bNumber);

bNumber=newJButton("9");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

pDown.add(bNumber);

bOperator=newJButton("/");

bOperator.setForeground(Color.red);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets(3,0,3,0));

pDown.add(bOperator);

bOperator=newJButton("sqrt");

bOperator.addActionListener(this);

bOperator.setForeground(Color.red);

bOperator.setMargin(newInsets(3,0,3,0));

pDown.add(bOperator);

bNumber=newJButton("4");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

bNumber.setHorizontalTextPosition(JButton.LEFT);

pDown.add(bNumber);

bNumber=newJButton("5");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

pDown.add(bNumber);

bNumber=newJButton("6");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

pDown.add(bNumber);

bOperator=newJButton("*");

bOperator.setForeground(Color.red);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets(3,3,3,3));

pDown.add(bOperator);

bOperator=newJButton("%");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets(3,3,3,3));

pDown.add(bOperator);

bNumber=newJButton("1");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

pDown.add(bNumber);

bNumber=newJButton("2");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

pDown.add(bNumber);

bNumber=newJButton("3");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

pDown.add(bNumber);

bOperator=newJButton("-");

bOperator.setForeground(Color.red);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets(3,3,3,3));

pDown.add(bOperator);

bOperator=newJButton("1/x");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

pDown.add(bOperator);

bNumber=newJButton("0");

bNumber.setForeground(Color.blue);

bNumber.addActionListener(this);

bNumber.setMargin(newInsets(3,3,3,3));

pDown.add(bNumber);

bOperator=newJButton("+/-");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets(3,3,3,3));

pDown.add(bOperator);

bOperator=newJButton(".");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets(3,3,3,3));

pDown.add(bOperator);

bOperator=newJButton("+");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets(3,3,3,3));

pDown.add(bOperator);

bOperator=newJButton("=");

bOperator.setForeground(Color.blue);

bOperator.addActionListener(this);

bOperator.setMargin(newInsets(3,3,3,3));

pDown.add(bOperator);

pRight.add(pUp,BorderLayout.NORTH);

pRight.add(pDown,BorderLayout.SOUTH);

pBottom.add(pRight,BorderLayout.EAST);

contentPane.add(pBottom,BorderLayout.SOUTH);

f.setSize(newDimension(320,256));

f.setResizable(false);

f.setVisible(true);

f.addWindowListener(newWindowAdapter()

{

publicvoidwindowClosing(WindowEvente)

{

System.exit(0);

}

}

);

}

/************************Java计算器计算方法区***************************/

publicvoidactionPerformed(ActionEvente)

{

Strings=e.getActionCommand();

if(s.equals("复制(C)"))

{

Stringtemp=tResult.getText().trim();

Board.replace(0,Board.length(),temp);

mPaste.setEnabled(true);

}

elseif(s.equals("粘贴(p)"))

{

tResult.setText(Board.toString());

}

elseif(s.equals("CE"))

{

//如果是CE则清除文本框

tResult.setText("0.");

}

elseif(s.equals("BackSpace"))

{

if(!tResult.getText().trim().equals("0."))

{

//如果文本框中有内容

if(str.length()!=1&&str.length()!=0)

{

tResult.setText(str.delete(str.length()-1,str.length()).toString());

}

else

{

tResult.setText("0.");

str.setLength(0);

}

}

op2=Double.parseDouble(tResult.getText().trim());

}

elseif(s.equals("C"))

{

//如果是C删除当前计算

tResult.setText("0.");

op1=op2=0;

str.replace(0,str.length(),"");

preOp=currentOp=0;

}

elseif(s.equals("MC"))

{

//如果是MC则清除缓冲区

Stringtemp="";

memory.replace(0,memory.length(),temp);

bM.setText("");

}

elseif(s.equals("MR"))

{

//如果按键为MR则恢复缓冲区的数到文本框

tResult.setText(memory.toString());

}

elseif(s.equals("MS"))

{

//如果按键为MS则将文本框的数存入缓冲区

Strings1=tResult.getText().trim();

memory.replace(0,memory.length(),s1);

bM.setText("M");

}

elseif(s.equals("M+"))

{

//如果按键为MS则将文本框值与缓冲区的数相加但不显示结果

Stringtemp1=tResult.getText().trim();

doubledtemp=Double.parseDouble(temp1);

Stringtemp2=memory.toString();

dtemp+=Double.parseDouble(temp2);

temp1=String.valueOf(dtemp);

memory.replace(0,memory.length(),temp1);

}

elseif(s.equals("1/x"))

{

//如果按键为1/x则将文本框中的数据为它的倒数

Stringtemp=tResult.getText().trim();

doubledtemp=Double.parseDouble(temp);

tResult.setText(""+1/dtemp);

}

elseif(s.equals("sqrt"))

{

//如果按键为sqrt则将文本框中的内容求平方根

Stringtemp=tResult.getText().trim();

doubledtemp=Double.parseDouble(temp);

tResult.setText(""+Math.sqrt(dtemp));

}

elseif(s.equals("+"))

{

str.setLength(0);

if(currentOp==0)

{

preOp=currentOp=1;

op2=0;

tResult.setText(""+op1);

}

else

{

currentOp=preOp;

preOp=1;

switch(currentOp){

case1:

op1+=op2;

tResult.setText(""+op1);

break;

case2:

op1-=op2;

tResult.setText(""+op1);

break;

case3:

op1*=op2;

tResult.setText(""+op1);

break;

case4:

op1/=op2;

tResult.setText(""+op1);

break;

}

}

}

elseif(s.equals("-")){

str.setLength(0);

if(currentOp==0)

{

preOp=currentOp=2;//op1=op2;op2=0;

tResult.setText(""+op1);

}

else

{

currentOp=preOp;

preOp=2;

switch(currentOp){

case1:op1=op1+op2;tResult.setText(""+op1);break;

case2:op1=op1-op2;tResult.setText(""+op1);break;

case3:op1=op1*op2;tResult.setText(""+op1);break;

case4:op1=op1/op2;tResult.setText(""+op1);break;

}

}

}

elseif(s.equals("*"))//*

{

str.setLength(0);

if(currentOp==0)

{

preOp=currentOp=3;//op1=op2;op2=1;

tResult.setText(""+op1);//op1=op2;

}

else

{

currentOp=preOp;

preOp=3;

switch(currentOp){

case1:op1=op1+op2;tResult.setText(""+op1);break;

case2:op1=op1-op2;tResult.setText(""+op1);break;

case3:op1=op1*op2;tResult.setText(""+op1);break;

case4:op1=op1/op2;tResult.setText(""+op1);break;

}

}

}

elseif(s.equals("/"))///

{

str.setLength(0);

if(currentOp==0)

{

preOp=currentOp=4;//op2=1;

tResult.setText(""+op1);//op1=op2;

}

else

{

currentOp=preOp;

preOp=4;

switch(currentOp){

case1:op1=op1+op2;tResult.setText(""+op1);break;

case2:op1=op1-op2;tResult.setText(""+op1);break;

case3:op1=op1*op2;tResult.setText(""+op1);break;

case4:op1=op1/op2;tResult.setText(""+op1);break;

}

}

}

elseif(s.equals("="))//=

{

if(currentOp==0)

{

str.setLength(0);

tResult.setText(""+op2);

}

else

{

str.setLength(0);

currentOp=preOp;

switch(currentOp){

case1:op1=op1+op2;tResult.setText(""+op1);break;

case2:op1=op1-op2;tResult.setText(""+op1);break;

case3:op1=op1*op2;tResult.setText("&qu

E. Java 简易计算器

package demo;

import java.util.Scanner;

public class Computer {
static Scanner s = new Scanner(System.in);

public static void main(String[] args) {
Computer c = new Computer();
c.run();
while(true){
System.out.println("是否继续?(1:继续,2:退出)");
String arg = s.nextLine();
if(arg.equals("1")){
c.run();
}else{
break;
}
}
}

public void run(){
System.out.println(" ------------简易计算器------------");
System.out.println("------------请如下选项中选择------------");
System.out.println("------------1.求和运算------------");
System.out.println("------------2.求差运算------------");
System.out.println("------------3.求积运算------------");
System.out.println("------------4.求商运算------------");
System.out.println("------------5.退出程序------------");

while(true){
System.out.println("请输入选项 :");
try{
int arg = s.nextInt();
if(arg==5){
break;
}
System.out.print("请输入第一个运算值:");
setDim(s.nextDouble());
System.out.println("请输入第二个运算值:");
setDim(s.nextDouble());
System.out.print("结果为:");
double temp = 0;
if(arg==1){
temp=getAdd();
}else if(arg==2){
temp=getSub();
}else if(arg==3){
temp=getMul();
}else if(arg==4){
temp=getDiv();
}
System.err.println(temp);
}catch(Exception e){
System.out.println("输入数字不正确...");
s =s.reset();
continue;
}
}

}

private double num1 = 0;
private double num2 = 0;

public void setDim(double num){
if(num1 == 0){
num1 = num;
}else{
num2 = num;
}
}

/**
* 加法
*/
public double getAdd(){
return num1 + num2;
}

/**
* 减法
*/
public double getSub(){
return num1 - num2;
}

/**
* 乘法
*/
public double getMul(){
return num1 * num2;
}

/**
* 除法
*/
public double getDiv(){
return num1 / num2;
}
}

阅读全文

与java编程简易计算器相关的资料

热点内容
产品经理和程序员的对话 浏览:228
安卓的小视频怎么下载到电脑 浏览:191
编程的文档怎么写 浏览:870
完美世界哪个app可以免费听 浏览:524
unity防止被反编译 浏览:996
ev加密视频可以让录取软件退吗 浏览:360
三菱gt2编程软件 浏览:488
单片机进水阀 浏览:703
三色旗算法 浏览:659
php结束foreach 浏览:574
电脑软件删除不掉文件夹正在使用 浏览:550
微积分app怎么做 浏览:567
php内容编辑器 浏览:269
jpg格式压缩软件 浏览:963
word转换成pdf转换器破解 浏览:184
我的宁夏app怎么删除健康码 浏览:764
鲲鹏服务器支持什么操作系统 浏览:519
查看表结构的命令 浏览:735
单片机限位开关原理图 浏览:934
matlab与数学实验pdf 浏览:705