java 计算器中清空_一个用Java写的计算器,只要加减乘除,正负,清除

这是一个使用Java编写的简单计算器程序,具备基本的加减乘除、正负数转换和清空功能。用户界面包括数字按键、运算符按键以及结果显示区。通过监听事件处理按键输入,进行相应的数学计算操作。
摘要由CSDN通过智能技术生成

import java.awt.*;

import java.awt.event.*;

import javax.swing.JFrame;

public class jisuanji {

public static void main(String[] args) {

@SuppressWarnings("unused")

final JsqFrame f;

f = new JsqFrame();

}

}

class JsqFrame extends JFrame {

private static final long serialVersionUID = 1L;

double d1, d2;

int op = -1;

TextField tf;

CalPanelL p1;

CalPanelR p2;

// Constructor

JsqFrame() {

super("计算器");

setLayout(new FlowLayout());

setResizable(true);

setSize(300,200);

tf = new TextField(22);

tf.setEditable(false);

tf.setBackground(new Color(108,118,103));

tf.setForeground(Color.white);

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

add(tf);

p1 = new CalPanelL();

p2 = new CalPanelR();

add(p1);

add(p2);

setVisible(true);

//addWindowListener(new Wclose());

}

// inner class:CalButton

class CalButton extends Button {

CalButton(String s){

super(s);

setBackground(Color.gray);

}

}

// inner class: CalPanelL

class CalPanelL extends Panel {

CalButton b0, b1, b2, b3,

b4, b5, b6, b7,

b8, b9, bPN, bPoint;

CalPanelL() {

setLayout(new GridLayout(4,3));

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

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

// 加入按钮

add(b7); b7.addActionListener(new PressB7());

add(b8); b8.addActionListener(new PressB8());

add(b9); b9.addActionListener(new PressB9());

add(b4); b4.addActionListener(new PressB4());

add(b5); b5.addActionListener(new PressB5());

add(b6); b6.addActionListener(new PressB6());

add(b1); b1.addActionListener(new PressB1());

add(b2); b2.addActionListener(new PressB2());

add(b3); b3.addActionListener(new PressB3());

add(b0); b0.addActionListener(new PressB0());

add(bPN); bPN.addActionListener(new PressBPN()); ;

add(bPoint); bPoint.addActionListener(new PressBPoint());

}

}

class CalPanelR extends Panel {

CalButton bAdd, bSub, bMul, bDiv,

bLn, bEqual, bCE, bQuit;

CalPanelR() {

setLayout(new GridLayout(4,2));

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

bAdd = new CalButton("+");

bSub = new CalButton("-");

bMul = new CalButton("*");

bDiv = new CalButton("/");

bLn = new CalButton("ln");

bEqual = new CalButton("=");

bCE = new CalButton("CE");

bQuit = new CalButton("退出");

add(bDiv); bDiv.addActionListener(new PressBDiv());

add(bCE); bCE.addActionListener(new PressBCE());

add(bMul); bMul.addActionListener(new PressBMul());

add(bLn); bLn.addActionListener(new PressBLn());

add(bSub); bSub.addActionListener(new PressBSub());

add(bEqual); bEqual.addActionListener(new PressBEqual());

add(bAdd); bAdd.addActionListener(new PressBAdd());

add(bQuit); bQuit.addActionListener(new PressBQuit());

}

}

class PressBAdd implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

d1 = Double.parseDouble(tf.getText());

op = 0;

tf.setText("");

} catch(Exception ee) {}

}

}

class PressBSub implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

d1 = Double.parseDouble(tf.getText());

op = 1;

tf.setText("");

} catch(Exception ee) {}

}

}

class PressBMul implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

d1 = Double.parseDouble(tf.getText());

op = 2;

tf.setText("");

} catch(Exception ee) {}

}

}

class PressBDiv implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

d1 = Double.parseDouble(tf.getText());

op = 3;

tf.setText("");

} catch(Exception ee) {}

}

}

class PressBEqual implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

double result = 0;

d2 = Double.parseDouble(tf.getText());

switch(op) {

case 0:

result = d1 + d2;

break;

case 1:

result = d1 - d2;

break;

case 2:

result = d1 * d2;

break;

case 3:

result = d1 / d2;

break;

case 4:

result = Math.pow(d1,d2);

break;

default:

}

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

} catch(Exception ee) {}

}

}

class PressBLn implements ActionListener {

public void actionPerformed(ActionEvent e) {

try {

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

double y;

y = Math.log(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);

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值