网站首页 > 文章中心 > 其它

计算器代码java解析

作者:小编 更新时间:2023-08-16 18:19:33 浏览量:110人看过

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?{

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

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

CalPanelL?p1;?//定义CalPanelL对象

//?Constructor构造方法

JsqFrame()?{

//以下设置属性

super("计算器");

setLayout(new?FlowLayout());

setResizable(false);

tf.setEditable(false);

tf.setBackground(Color.lightGray);

tf.setForeground(Color.red);

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?{

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

CalPanelL()?{

//设置显示器的属性

a?=?new?CalButton("");

c?=?new?CalButton("");

b0?=?new?CalButton("0");

b1?=?new?CalButton("1");

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(bDiv);

bDiv.addActionListener(new?PressBDiv());

add(bMul);

bMul.addActionListener(new?PressBMul());

add(b1);

b1.addActionListener(new?PressB1());

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?{

op?=?1;

tf.setText(d1?◆?"-");

//定义PressBMul实现ActionListener

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

class?PressBMul?implements?ActionListener?{

tf.setText(d1?◆?"*");

//定义PressBDiv实现ActionListener

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

class?PressBDiv?implements?ActionListener?{

tf.setText(d1?◆?"/");

//定义PressBL实现ActionListener

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

class?PressBL?implements?ActionListener?{

tf.setText(d1?◆?"(");

//定义PressBR实现ActionListener

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

class?PressBR?implements?ActionListener?{

tf.setText(d1?◆?")");

//定义PressBEqual实现ActionListener

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

class?PressBEqual?implements?ActionListener?{

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));

/*

*?批量写吧

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

*/

class?PressBLn?implements?ActionListener?{

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

double?y;

y?=?Math.log10(x);

tf.setText(y?◆?"");

class?PressBCE?implements?ActionListener?{

tf.setText("");

class?PressBPN?implements?ActionListener?{

String?text?=?tf.getText();

if?(text?!=?"")?{

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

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

tf.setText("-"?◆?text.substring(0));

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

tf.setText("-0"?◆?text.substring(0));

class?PressBPoint?implements?ActionListener?{

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

tf.setText(text?◆?".");

class?PressB0?implements?ActionListener?{

tf.setText(text?◆?"0");

class?PressB1?implements?ActionListener?{

tf.setText(text?◆?"1");

class?PressBQuit?implements?ActionListener?{

System.exit(0);

public?void?Js()?{

tf.setText(text);

帮帮忙:Java小计算器代码,及需求分析.流程图.

import java.awt.*;//引入包java.awt中所有的类

import java.awt.event.*;//引入包java.awt.event中所有的类.

public class Calculator extends WindowAdapter implements ActionListener//创建Calculator类,

实现ActionListener接口.

{

private double result=0,data1=0,radixPointDepth=1;//定义变量

private boolean radixPointIndicate=false,resultIndicate=false;

private char prec='◆';//创建优先默认字符"◆"

private Frame f;//创建窗口

private TextField tf;//创建文本框

private Panel p;//创建/面板容器

static public void main(String args[])//main方法,创建calGUI(图形用户界面),完成初试化

//构造器

Calculator de=new Calculator();//创建构造方法

de.go();

public void go()

f=new Frame("计算器");

p=new Panel();//运算界面p

//实例化按钮

f.add(tf,"North"); //把文本区域添加到框架的上方

f.add(p,"Center"); //把面版添加到框架的中间

//把按钮添加到面版上

p.add(b1);

p.add(b10);

p.add(b11);

//为按钮添加监听

b1.addActionListener(this);

b10.addActionListener(this);

b11.addActionListener(this);

f.addWindowListener(this); //为框架添加监听

f.setVisible(true);//设置框架为可见

//监听程序

public void actionPerformed(ActionEvent e)

String s;

s=e.getActionCommand();

//SWITCH开关

switch(s.charAt(0))

if(resultIndicate)

result=0;

data1=0;

prec='◆';

Integer Int1=new Integer(s);

if(radixPointIndicate)

radixPointDepth=radixPointDepth/10;

data1=data1◆(Int1.intValue())*radixPointDepth;

else

data1=data1*10◆(Int1.intValue());

resultIndicate=false;

break;

case '◆': case '-':case '*':case '/':case '='://按了"◆、-、*、/",就

执行下面

if(s.charAt(0)!='='resultIndicate)

prec=s.charAt(0);

//用SWITCH开关运算出执行了"◆、-、*、/"的结果

switch(prec)

case '◆':

result=result◆data1;

case '-':

result=result-data1;

case '*':

result=result*data1;

case '/':

result=result/data1;

radixPointIndicate=false;

radixPointDepth=1;

//监听是否按了"="

if(s.charAt(0)!='=')

resultIndicate=true;

case '.':

radixPointIndicate=true;

//监听是否按了为"清零",是则对各数据清零

if(s.equals("清零"))

public void windowClosing(WindowEvent e)

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()方法;

//定义按钮名称

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

JButton reset = new JButton("CE");

//创建窗口,定义组件

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

private class WindowCloser extends WindowAdapter {

public void windowClosing(WindowEvent we) {

public Calcultor(){

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

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

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

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

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

jpanel.add(button[i]);

this.add("Center", jpanel);

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

addWindowListener(new WindowCloser());

pack();

button[i].addActionListener(this);

reset.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();

handleNumber(lable);

}else{

hadleOperator(lable);

boolean isFirstDigit=true;

private void hadleOperator(String key) {

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

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

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

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

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

operator=key;

isFirstDigit=true;

private void handleNumber(String key) {

if(true){

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

isFirstDigit=false;

private void handleReset() {

operator="=";

String operator="=";

Double number=0.0;

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

import java.awt.*;

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

public class jisuanqi extends WindowAdapter {

Panel p1 = new Panel();

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

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("简单计算器");

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

txt.setEditable(false);

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

fm.addWindowListener(this);

fm.setBackground(Color.red);

p1.setLayout(new BorderLayout());

p1.add(txt, "Center");

fm.add(p1, "North");

fm.pack();

fm.setVisible(true);

//关闭窗口的方法

public void windowClosing(WindowEvent e) {

//用这种方法在一个类里面定义另一个类是不好的,应该单独用以个文件承载,这个类是实现了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() == "◆") {

txt.setText("");

s = "◆";

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

s = "-";

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

s = "/";

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

s = "*";

} else {

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

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

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());

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

//关闭按钮事件

class close implements ActionListener {

以上就是土嘎嘎小编为大家整理的计算器代码java解析相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章