java计算器代码注释 java计算器加减乘除代码

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编一个计算器的程序,要里边的注释

package counter;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class Counter implements ActionListener {

JFrame counter = null;

Container cou = null;

JTextField txt = null;

JPanel pan = null;

JButton [] btn = null;

JLabel lblbrand = null,lbltype = null;

String sign = "",sign1 = "0",sign2 = "",sign3 = "";

char operator = ' ', operator1 = '+';

int i = 0;

double resault = 0;

int b = 0;

public Counter() {

counter = new JFrame("计算器");

cou = counter.getContentPane();

cou.setLayout(null);

lblbrand = new JLabel("大象牌");

lblbrand.setForeground(Color.BLUE);

lblbrand.setBounds(15,8,70,20);

cou.add(lblbrand);

lbltype = new JLabel("x-14250");

lbltype.setForeground(Color.GREEN);

lbltype.setBounds(265,8,70,20);

cou.add(lbltype);

txt = new JTextField("0.");

txt.setCaretPosition(2);

txt.setHorizontalAlignment(JTextField.TRAILING);

cou.add(txt);

txt.setBounds(15,28,300,30);

pan = new JPanel(new GridLayout(5,4,10,10));

pan.setBounds(15,68,300,160);

btn = new JButton[20];

String [] btnname = {"Off","Back","C","Exit","7","8","9","+","4","5",

"6","-","1","2","3","*","0",".","=","/"};

for(int i = 0; i 20; i++)

{

btn[i] = new JButton(btnname[i]);

pan.add(btn[i]);

btn[i].addActionListener(this);

}

btn[7].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));

btn[11].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));

btn[15].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));

btn[17].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));

btn[18].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));

btn[19].setFont(new java.awt.Font("宋体", Font.PLAIN, 16));

cou.add(pan);

counter.setSize(335,280);

counter.setVisible(true);

}

public void actionPerformed(ActionEvent e) {

operator = e.getActionCommand().charAt(0);

annal();

if(!sign.equals(""))

opinion(sign);

else

showresault(sign1);

if(i % 2 != 0)

txt.setText("");

}

private void annal(){

int l = 0;

switch (operator) {

case '1':

case '2':

case '3':

case '4':

case '5':

case '6':

case '7':

case '8':

case '9':

if (!sign.equals("0"))

sign = sign + Character.toString(operator);

else

sign = sign.concat(Character.toString(operator)).substring(1);

break;

case '0':

if (!sign.equals("") !sign.equals("0"))

sign = sign + Character.toString(operator);

else

sign = "0";

break;

case 'B':

if (sign.length() 1 sign.charAt(txt.getText().length() - 1) != '.') {

sign = (sign.substring(0,sign.length() - 1));

} else if (sign.length() 2) {

sign = (sign.substring(0,sign.length() - 2));

} else {

sign = "0";

}

break;

case 'C':

sign = "";

sign2 = "";

sign1 = "0";

operator = ' ';

break;

case 'E':

System.exit(0);

break;

case 'O':

sign = "";

sign2 = "";

sign1 = "0";

operator = ' ';

i++;

break;

case '+':

case '-':

case '*':

case '/':

count();

break;

case '=':

count();

operator1 = ' ';

sign3 = "-1";

break;

case '.':

if (sign.equals("")) {

sign = "0".concat(Character.toString(operator));

} else {

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

if (sign.charAt(i) == '.') {

l++;

}

}

if (l == 0) {

sign = sign + Character.toString(operator);

}

}

break;

}

}

private void count(){

double number1 = 0,number2 = 0;

if (!sign.equals(""))

sign2 = sign;

else

sign2 = "0";

sign = "";

if (!sign3.equals("-1"))

sign3 = sign1;

else

sign3 = "0";

number1 = Double.valueOf(sign3).doubleValue();

number2 = Double.valueOf(sign2).doubleValue();

switch(operator1){

case '+':

resault = number1 + number2;

break;

case '-':

resault = number1 - number2;

break;

case '*':

resault = number1 * number2;

break;

case '/':

resault = number1 / number2;

break;

case ' ':

resault = Double.valueOf(sign2).doubleValue();

}

operator1 = operator;

sign1 = Double.toString(resault);

}

private void showresault(String sign) {

int j = sign.length() - 1;

String subsign = "";

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

if (sign.charAt(i) == '.')

{

j = i;

break;

}

}

if (j != sign.length() - 1) {

subsign = sign.substring(j+1);

if (Double.valueOf(subsign).doubleValue() 0)

txt.setText(sign);

else

txt.setText(sign.substring(0, j));

}

else

txt.setText(sign);

}

private void opinion(String sign){

txt.setText(sign);

}

public static void main(String[] args) {

Counter counter = new Counter();

}

}

这个是以前自己做的一个计算器,可能不是很完善,注释没写,但代码相对简单,应该可以看明白

java 计算器代码

import javax.swing.*;

import javax.swing.border.Border;

import java.awt.*;

import java.awt.event.ActionListener;

import java.awt.event.ActionEvent;

import java.math.BigDecimal;

import java.math.RoundingMode;

import java.util.HashMap;

/**

* 我的计算器。Cheshi 继承于 JFrame,是计算器的界面

c*/

public class Cheshi extends JFrame {

private Border border = BorderFactory.createEmptyBorder(5, 5, 5, 5);

private JTextField textbox = new JTextField("0");

private CalculatorCore core = new CalculatorCore();

private ActionListener listener = new ActionListener() {

public void actionPerformed(ActionEvent e) {

JButton b = (JButton) e.getSource();

String label = b.getText();

String result = core.process(label);

textbox.setText(result);

}

};

public Cheshi(String title) throws HeadlessException {

super(title); // 调用父类构造方法

setupFrame(); // 调整窗体属性

setupControls(); // 创建控件

}

private void setupControls() {

setupDisplayPanel(); // 创建文本面板

setupButtonsPanel(); // 创建按钮面板

}

// 创建按钮面板并添加按钮

private void setupButtonsPanel() {

JPanel panel = new JPanel();

panel.setBorder(border);

panel.setLayout(new GridLayout(4, 5, 3, 3));

createButtons(panel, new String[]{

"7", "8", "9", "+", "C",

"4", "5", "6", "-", "CE",

"1", "2", "3", "*", "", // 空字符串表示这个位置没有按钮

"0", ".", "=", "/", ""

});

this.add(panel, BorderLayout.CENTER);

}

/**

* 在指定的面板上创建按钮

*

* @param panel 要创建按钮的面板

* @param labels 按钮文字

*/

private void createButtons(JPanel panel, String[] labels) {

for (String label : labels) {

// 如果 label 为空,则表示创建一个空面板。否则创建一个按钮。

if (label.equals("")) {

panel.add(new JPanel());

} else {

JButton b = new JButton(label);

b.addActionListener(listener); // 为按钮添加侦听器

panel.add(b);

}

}

}

// 设置显示面板,用一个文本框来作为计算器的显示部分。

private void setupDisplayPanel() {

JPanel panel = new JPanel();

panel.setLayout(new BorderLayout());

panel.setBorder(border);

setupTextbox();

panel.add(textbox, BorderLayout.CENTER);

this.add(panel, BorderLayout.NORTH);

}

// 调整文本框

private void setupTextbox() {

textbox.setHorizontalAlignment(JTextField.RIGHT); // 文本右对齐

textbox.setEditable(false); // 文本框只读

textbox.setBackground(Color.white); // 文本框背景色为白色

}

// 调整窗体

private void setupFrame() {

this.setDefaultCloseOperation(EXIT_ON_CLOSE); // 当窗体关闭时程序结束

this.setLocation(100, 50); // 设置窗体显示在桌面上的位置

this.setSize(300, 200); // 设置窗体大小

this.setResizable(false); // 窗体大小固定

}

// 程序入口

public static void main(String[] args) throws Exception {

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Cheshi frame = new Cheshi("我的计算器");

frame.setVisible(true); // 在桌面上显示窗体

}

}

/**

* 计算器核心逻辑。这个逻辑只能处理 1~2 个数的运算。

*/

class CalculatorCore {

private String displayText = "0"; // 要显示的文本

boolean reset = true;

private BigDecimal number1, number2;

private String operator;

private HashMapString, Operator operators = new HashMapString, Operator();

private HashMapString, Processor processors = new HashMapString, Processor();

CalculatorCore() {

setupOperators();

setupProcessors();

}

// 为每种命令添加处理方式

private void setupProcessors() {

processors.put("[0-9]", new Processor() {

public void calculate(String command) {

numberClicked(command);

}

});

processors.put("\\.", new Processor() {

public void calculate(String command) {

dotClicked();

}

});

processors.put("=", new Processor() {

public void calculate(String command) {

equalsClicked();

}

});

processors.put("[+\\-*/]", new Processor() {

public void calculate(String command) {

operatorClicked(command);

}

});

processors.put("C", new Processor() {

public void calculate(String command) {

clearClicked();

}

});

processors.put("CE", new Processor() {

public void calculate(String command) {

clearErrorClicked();

}

});

}

// 为每种 operator 添加处理方式

private void setupOperators() {

operators.put("+", new Operator() {

public BigDecimal process(BigDecimal number1, BigDecimal number2) {

return number1.add(number2);

}

});

operators.put("-", new Operator() {

public BigDecimal process(BigDecimal number1, BigDecimal number2) {

return number1.subtract(number2);

}

});

operators.put("*", new Operator() {

public BigDecimal process(BigDecimal number1, BigDecimal number2) {

return number1.multiply(number2);

}

});

operators.put("/", new Operator() {

public BigDecimal process(BigDecimal number1, BigDecimal number2) {

return number1.divide(number2, 30, RoundingMode.HALF_UP);

}

});

}

// 根据命令处理。这里的命令实际上就是按钮文本。

public String process(String command) {

for (String pattern : processors.keySet()) {

if (command.matches(pattern)) {

processors.get(pattern).calculate(command);

break;

}

}

return displayText;

}

// 当按下 CE 时

private void clearErrorClicked() {

if (operator == null) {

number1 = null;

} else {

number2 = null;

}

displayText = "0";

reset = true;

}

// 当按下 C 时,将计算器置为初始状态。

private void clearClicked() {

number1 = null;

number2 = null;

operator = null;

displayText = "0";

reset = true;

}

// 当按下 = 时

private void equalsClicked() {

calculateResult();

number1 = null;

number2 = null;

operator = null;

reset = true;

}

// 计算结果

private void calculateResult() {

number2 = new BigDecimal(displayText);

Operator oper = operators.get(operator);

if (oper != null) {

BigDecimal result = oper.process(number1, number2);

displayText = result.toString();

}

}

// 当按下 +-*/ 时(这里也可以扩展成其他中间操作符)

private void operatorClicked(String command) {

if (operator != null) {

calculateResult();

}

number1 = new BigDecimal(displayText);

operator = command;

reset = true;

}

// 当按下 . 时

private void dotClicked() {

if (displayText.indexOf(".") == -1) {

displayText += ".";

} else if (reset) {

displayText = "0.";

}

reset = false;

}

// 当按下 0-9 时

private void numberClicked(String command) {

if (reset) {

displayText = command;

} else {

displayText += command;

}

reset = false;

}

// 运算符处理接口

interface Operator {

BigDecimal process(BigDecimal number1, BigDecimal number2);

}

// 按钮处理接口

interface Processor {

void calculate(String command);

}

}

哪位高手帮忙注释一个Java程序,计算器

public void actionPerformed(ActionEvent e)

{

String label=e.getActionCommand();//返回动作的按钮标签并将其赋给label

if(label=="C") //这个有问题,怎么也得用equals方法吧

handleC();//当用户点击C,调用handleC方法

else if("0123456789.".indexOf(label)=0)// 如果label中包含“0123456789.”

{handleNumber(label);

}

else

handleOperator(label);

}


新闻标题:java计算器代码注释 java计算器加减乘除代码
文章出自:http://scyanting.com/article/doshpde.html