日期:2014-05-20  浏览次数:20677 次

【求助】程煦媛都是写得了代码,查得出异常,上得了厅堂下得了厨房,---------------(一个Java计算器)查个异常让我们这些沙弥见识见识
package calculator02;

import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import java.util.HashMap;
import java.util.Map;
import java.util.Stack;

public class Calc
{
// 框架
private JFrame jf = new JFrame("calc");
private JPanel jptext = new JPanel();
private JPanel keyboarder = new JPanel();
private GridBagLayout gb = new GridBagLayout();
private GridBagConstraints gbc = new GridBagConstraints();
// 辅助

private static boolean sign = false;
private static String info = "";
private static String bufferKey;
private static String copy;
private static String bs; // bufferScreen;
private static String expression = "";
private static String bsv = "Ans="; // bufferScreenView;
private static String temp = "";
private static String[] index = new String[50];
private static JTextField screen = new JTextField(20);
private static JTextField screenView = new JTextField(20);

private static String[] key = "c < / x 7 8 9 - 4 5 6 + 1 2 3 = 0 ."
.split(" ");
private static JButton button[] = new JButton[key.length];

// 逆波兰式
private Stack<Double> operandStack = new Stack<Double>();// 操作数堆栈
private Stack<String> operatorStack = new Stack<String>();// 操作符堆栈
//private String expressionPolish;// 算数表达式
private double resultPolish = 0.0;// 计算结果
private Map<String, Integer> priorityMap = new HashMap<String, Integer>();// 用于存储操作符优先级的Map

// 逆波兰式代码
public Calc()
{
priorityMap.put("+", 0);
priorityMap.put("-", 0);
priorityMap.put("*", 1);
priorityMap.put("/", 1);
}

public int getPriority(String op)// 得到一个操作符的优先级
{
return priorityMap.get(op);//////////异常1
}

public boolean highPriority(String op)// 判断操作符的优先级在堆栈里面是否最为高