java求给此计算器增加两项功能 谢谢了

来源:百度知道 编辑:UC知道 时间:2024/06/30 20:00:25
目前计算器正常 只是有两处需要改进 本人实在做不出来 求求高手
当连着按两次符号的时候结果不对 比如 2加号减号后结果栏就会出现4
还有一点 结果栏表现形式是double形势 需要double数据 但是整数的时候也是显示一位小数点 如何改进呢?

谢谢大人们了

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class MyCalculator extends JFrame implements ActionListener
{
public boolean dotExist, operated, equaled,opr; // boolean変数
private double Num1; // 目前结果
private char lastOperator; // 之前运算符
public JTextField text; // 结果栏
private JButton dot, plus, minus, multi, div, equal, clear; // 运算符
private JButton[] numbers; // 数字

//
public MyCalculator()
{
setTitle("Calculator");
// 初始化
dotExist = false; // 小数点
operated = false; // 运算符
equaled = false; // 等号
Num1= 0;

lastOperator = '?';
// 初始化
text = new JTextField("0");
text.setEditable(false);
text.setHorizontalAlignment(J

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;

/**
* 我的计算器。MyCalculator 继承于 JFrame,是计算器的界面
*/
public class Calculator extends JFrame {

/**
*
*/
private static final long serialVersionUID = 1L;

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