java计算器代码讲解 java简单计算器代码

急求Java计算器代码注释!!!!!

其实你这种学习编程的方法我是极度不推荐的,正确的方法应该从基础开始,你这个程序是用图形用户界面来写的,入门的话最好还是控制台程序,这样你可以了解整个程序的流程和语法,如果你没有C语言的基础,请找一本讲解C语言的书学习,然后学习好了你再来看JAVA感觉就很简单了。(绝对原创,请求给分)

公司主营业务:成都网站制作、网站设计、外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出普定免费做网站回馈大家。

import java.awt.*;

import java.awt.event.*; //导入包,因为后面要用到里面的东西

public class jisuanqi extends WindowAdapter {

Panel p1 = new Panel();

Panel p2 = new Panel();

Panel p3 = new Panel(); //构造3个panel对象,这个是个容器,里面可以添加别的组件

TextField txt; // TextField 组件,相当于一个文本区域

private Button[] b = new Button[17]; //看名字就知道是按钮了吧

private String ss[] = { "7", "8", "9", "+", "4", "5", "6", "-", "1", "2",

"3", "*", "清空", "0", "=", "/", "关闭" };

static int a;

static String s, str;

//入口函数,相当于C里面的MAIN函数

public static void main(String args[]) {

(new jisuanqi()).frame(); //调用函数,java里叫方法

}

//将窗口实例化,frame是一个窗口,awt包里的。算法方面自己看看就能明白

public void frame() {

Frame fm = new Frame("简单计算器");

for (int i = 0; i = 16; i++) {

b[i] = new Button(ss[i]);

}

for (int i = 0; i = 15; i++) {

p2.add(b[i]);

}

fm.setBounds(300,200,200,200);

b[16].setBackground(Color.yellow);

txt = new TextField(15);

txt.setEditable(false);

for (int i = 0; i = 16; i++) {

b[i].addActionListener(new buttonlistener());

}

b[16].addActionListener(new close());

fm.addWindowListener(this);

fm.setBackground(Color.red);

p1.setLayout(new BorderLayout());

p1.add(txt, "Center");

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

p3.setLayout(new BorderLayout());

p3.add(b[16]);

fm.add(p1, "North");

fm.add(p2, "Center");

fm.add(p3, "South");

fm.pack();

fm.setVisible(true);

}

//关闭窗口的方法

public void windowClosing(WindowEvent e) {

System.exit(0);

}

//用这种方法在一个类里面定义另一个类是不好的,应该单独用以个文件承载,这个类是实现了ActionListener接口,用于监听按钮事件。正规的写法应该是在主类里面实现这个接口,然后写一个方法来调用。

class buttonlistener implements ActionListener {

public void actionPerformed(ActionEvent e) {

Button btn = (Button) e.getSource();

if (btn.getLabel() == "=") {

jisuan();

str = String.valueOf(a);

txt.setText(str);

s = "";

} else if (btn.getLabel() == "+") {

jisuan();

txt.setText("");

s = "+";

} else if (btn.getLabel() == "-") {

jisuan();

txt.setText("");

s = "-";

} else if (btn.getLabel() == "/") {

jisuan();

txt.setText("");

s = "/";

} else if (btn.getLabel() == "*") {

jisuan();

txt.setText("");

s = "*";

} else {

txt.setText(txt.getText() + btn.getLabel());

if (btn.getLabel() == "清空")

txt.setText("");

}

}

public void jisuan() {

if (s == "+")

a += Integer.parseInt(txt.getText());

else if (s == "-")

a -= Integer.parseInt(txt.getText());

else if (s == "*")

a *= Integer.parseInt(txt.getText());

else if (s == "/")

a /= Integer.parseInt(txt.getText());

else

a = Integer.parseInt(txt.getText());

}

}

}

//关闭按钮事件

class close implements ActionListener {

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

}

java 计算器代码带括号 求注释

//引入各种类文件

import java.awt.Button;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.Font;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.Panel;

import java.awt.TextField;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

//定义JsqFrame继承Frame

class JsqFrame extends Frame {

double d1, d2;  //定义两个double类型的变量

int op = -1;  //定义两个int类型的变量

static TextField tf;//定义静态对象TextField

CalPanelL p1;  //定义CalPanelL对象

// Constructor构造方法

JsqFrame() {

//以下设置属性

super("计算器");

setLayout(new FlowLayout());

setResizable(false);

setSize(250, 250);

tf = new TextField(18);

tf.setEditable(false);

tf.setBackground(Color.lightGray);

tf.setForeground(Color.red);

tf.setFont(new Font("Arial", Font.BOLD, 16));

add(tf);

p1 = new CalPanelL();

add(p1);

setVisible(true);

// addWindowListener(new Wclose());

}

//添加按钮继承Button类

class CalButton extends Button {

CalButton(String s) {

//设置按钮属性

super(s);

setBackground(Color.WHITE); //设置颜色为白色

}

}

//定义显示器继承Panel类

class CalPanelL extends Panel {

CalButton a, c, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, bPN, bPoint,

bAdd, bSub, bMul, bDiv, bL, bR, bLn, bEqual, bCE, bQuit;

CalPanelL() {

//设置显示器的属性

setLayout(new GridLayout(6, 4));

setFont(new Font("TimesRoman", Font.BOLD, 16));

a = new CalButton("");

c = new CalButton("");

b0 = new CalButton("0");

b1 = new CalButton("1");

b2 = new CalButton("2");

b3 = new CalButton("3");

b4 = new CalButton("4");

b5 = new CalButton("5");

b6 = new CalButton("6");

b7 = new CalButton("7");

b8 = new CalButton("8");

b9 = new CalButton("9");

bPN = new CalButton("+/-");

bPoint = new CalButton(".");

// 设置按钮

bAdd = new CalButton("+");

bSub = new CalButton("-");

bMul = new CalButton("*");

bDiv = new CalButton("/");

bL = new CalButton("(");

bR = new CalButton(")");

bLn = new CalButton("ln");

bEqual = new CalButton("=");

bCE = new CalButton("CE");

bQuit = new CalButton("退出");

// 加入按钮

add(a);

add(c);

add(bCE);

bCE.addActionListener(new PressBCE());

add(bQuit);

bQuit.addActionListener(new PressBQuit());

add(b7);

b7.addActionListener(new PressB7());

add(b8);

b8.addActionListener(new PressB8());

add(b9);

b9.addActionListener(new PressB9());

add(bDiv);

bDiv.addActionListener(new PressBDiv());

add(b4);

b4.addActionListener(new PressB4());

add(b5);

b5.addActionListener(new PressB5());

add(b6);

b6.addActionListener(new PressB6());

add(bMul);

bMul.addActionListener(new PressBMul());

add(b1);

b1.addActionListener(new PressB1());

add(b2);

b2.addActionListener(new PressB2());

add(b3);

b3.addActionListener(new PressB3());

add(bSub);

bSub.addActionListener(new PressBSub());

add(b0);

b0.addActionListener(new PressB0());

add(bPoint);

bPoint.addActionListener(new PressBPoint());

add(bPN);

bPN.addActionListener(new PressBPN());

;

add(bAdd);

bAdd.addActionListener(new PressBAdd());

add(bL);

bL.addActionListener(new PressBL());

add(bR);

bR.addActionListener(new PressBR());

add(bLn);

bLn.addActionListener(new PressBLn());

add(bEqual);

bEqual.addActionListener(new PressBEqual());

}

}

//定义PressBAdd实现ActionListener

//大体的意思是按计算机按键的时出发的时间,设置按键的监听[加号的监听事件]

class PressBAdd implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

String d1 = tf.getText();

op = 0;

tf.setText(d1 + "+");

} catch (Exception ee) {

}

}

}

//定义PressBSub实现ActionListener

//大体的意思是按计算机按键的时出发的时间,设置按键的监听[减号的监听事件]

class PressBSub implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

String d1 = tf.getText();

op = 1;

tf.setText(d1 + "-");

} catch (Exception ee) {

}

}

}

//定义PressBMul实现ActionListener

//大体的意思是按计算机按键的时出发的时间,设置按键的监听[乘号的监听事件]

class PressBMul implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

String d1 = tf.getText();

op = 2;

tf.setText(d1 + "*");

} catch (Exception ee) {

}

}

}

//定义PressBDiv实现ActionListener

//大体的意思是按计算机按键的时出发的时间,设置按键的监听[除号的监听事件]

class PressBDiv implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

String d1 = tf.getText();

op = 3;

tf.setText(d1 + "/");

} catch (Exception ee) {

}

}

}

//定义PressBL实现ActionListener

//大体的意思是按计算机按键的时出发的时间,设置按键的监听[向左键的监听事件]

class PressBL implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

String d1 = tf.getText();

op = 3;

tf.setText(d1 + "(");

} catch (Exception ee) {

}

}

}

//定义PressBR实现ActionListener

//大体的意思是按计算机按键的时出发的时间,设置按键的监听[向右键的监听事件]

class PressBR implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

String d1 = tf.getText();

op = 3;

tf.setText(d1 + ")");

} catch (Exception ee) {

}

}

}

//定义PressBEqual实现ActionListener

//大体的意思是按计算机按键的时出发的时间,设置按键的监听[等号的监听事件]

class PressBEqual implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

Jsq jsq = new Jsq();

String s = tf.getText();

System.out.println(s);

while (s.indexOf("(") + 1  0  s.indexOf(")")  0) {

String s1 = jsq.caculateHigh(s);

System.out.println(s1);

s = s1;

}

String str = jsq.cacluteMain(s);

System.out.println(str);

tf.setText(String.valueOf(str));

} catch (Exception ee) {

}

}

}

/*

* 批量写吧

* 以下是按1、2、3等等的监听事件

* 还有清零的等等监听事件

*/

class PressBLn implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

double x = Double.parseDouble(tf.getText());

double y;

y = Math.log10(x);

tf.setText(y + "");

} catch (Exception ee) {

}

}

}

class PressBCE implements ActionListener {

public void actionPerformed(ActionEvent e) {

tf.setText("");

}

}

class PressBPN implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

String text = tf.getText();

if (text != "") {

if (text.charAt(0) == '-')

tf.setText(text.substring(1));

else if (text.charAt(0) = '0'  text.charAt(0) = '9')

tf.setText("-" + text.substring(0));

else if (text.charAt(0) == '.')

tf.setText("-0" + text.substring(0));

}

} catch (Exception ee) {

}

}

}

class PressBPoint implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

if (text.lastIndexOf(".") == -1)

tf.setText(text + ".");

}

}

class PressB0 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "0");

}

}

class PressB1 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "1");

}

}

class PressB2 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "2");

}

}

class PressB3 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "3");

}

}

class PressB4 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "4");

}

}

class PressB5 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "5");

}

}

class PressB6 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "6");

}

}

class PressB7 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "7");

}

}

class PressB8 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "8");

}

}

class PressB9 implements ActionListener {

public void actionPerformed(ActionEvent e) {

String text = tf.getText();

tf.setText(text + "9");

}

}

class PressBQuit implements ActionListener {

public void actionPerformed(ActionEvent e) {

System.exit(0);

}

}

public void Js() {

String text = tf.getText();

tf.setText(text);

}

}

帮我解释下java计算器代码中的除法运算谢谢

java中字符串的相等,请不要用==号,应该改成s.equals("==")

else

if(s=="退格"){

a=a/10;

}

这个方法不太好,比如我输入1,再退格,应该等于0.1吗?

JAVA计算器相关代码求大神{详解}

我给你找找

package com.bj.calcultor;

import java.awt.Frame;

import java.awt.GridLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import javax.swing.JButton;

import javax.swing.JPanel;

import javax.swing.JTextField;

public class Calcultor extends Frame implements ActionListener {

public static void main(String[] args) {//定义主方

new Calcultor();//创建匿名对象,并调用test()方法;

}

//定义按钮名称

String[] arr={"1","2","3","4","5","6","7","8","9","0","+","-","*","/","=","."};

JButton [] button=new JButton[arr.length];

JButton reset = new JButton("CE");

JTextField display = new JTextField(20);

//创建窗口,定义组件

//执行窗口事件:关闭窗口

private class WindowCloser extends WindowAdapter {

public void windowClosing(WindowEvent we) {

System.exit(0);

}

}

public Calcultor(){

super("计算器");//定义标题

//定义面板容器,并布局

JPanel jpanel=new JPanel(new GridLayout(4,4));

//添加按钮,并给按钮添加名称

for (int i = 0; i arr.length; i++) {

button[i]= new JButton(arr[i]);

jpanel.add(button[i]);

}

JPanel panel2 = new JPanel();

panel2.add("Northr", display);

display.setEnabled(false);

panel2.add("East", reset);

this.add("North", panel2);

this.add("Center", jpanel);

for (int i = 0; i arr.length; i++){

addWindowListener(new WindowCloser());

setVisible(true);

setSize(400,400);

pack();

button[i].addActionListener(this);

reset.addActionListener(this);

display.addActionListener(this);

}

}

@Override

public void actionPerformed(ActionEvent e) {//定义事件

// TODO Auto-generated method stub

Object target=e.getSource();

String lable=e.getActionCommand();

if(target==reset){

handleReset();

}else if("0123456789.".indexOf(lable)0){

handleNumber(lable);

}else{

hadleOperator(lable);

}

}

boolean isFirstDigit=true;

private void hadleOperator(String key) {

if(operator.equals("+")){

number += Double.valueOf(display.getText());

}else if (operator.equals("-")){

number -= Double.valueOf(display.getText());

}else if (operator.equals("*")){

number *= Double.valueOf(display.getText());

}else if (operator.equals("/")){

number /= Double.valueOf(display.getText());

}else if(operator.equals("=")){

number =Double.valueOf(display.getText());

}

display.setText(String.valueOf(number));

operator=key;

isFirstDigit=true;

}

private void handleNumber(String key) {

if(true){

display.setText(key);//把键值设置为文本框内容

}else if(key.equals(".") display.getText().indexOf(".")0){

display.setText(display.getText()+".");//把文本框内容设置:display.getText()+"."

}else if(!key.equals(".")){

display.setText(display.getText() + key);//把文本框内容设置:display.getText()+key

isFirstDigit=false;

}

}

private void handleReset() {

display.setText("0");

isFirstDigit=true;

operator="=";

}

String operator="=";

Double number=0.0;

}


分享文章:java计算器代码讲解 java简单计算器代码
文章网址:http://csdahua.cn/article/hggiip.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流