我们老师布置了一个小项目——不许使用swing,只能用AWT制作计算器。对于java菜鸟的我,这样做起来还真有点困难,那个+、-、*、/ 事件源我不会……请大家帮忙讨论一下!!

解决方案 »

  1.   

    事件都在awt包里
    Swing和AWT没有什么区别不过话说回来,你们老师还是真的牛啊
    非要你们用一个已经过时的,被官方抛弃掉的awt去做东西
      

  2.   

    这是我大一时做的,基本上都是用awt做的,楼主觉得哪有不好,自己在修饰一下就好
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.GridLayout;
    import java.awt.Insets;
    import java.awt.Menu;
    import java.awt.MenuBar;
    import java.awt.MenuItem;
    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.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JTextField;
    import javax.swing.UIManager;
    import javax.swing.UnsupportedLookAndFeelException;public class Mycalculator extends JFrame
    {
    private String[] names = { "退格", "CE", "C", "/", "7", "8", "9", "*", "4",
    "5", "6", "-", "1", "2", "3", "+", "0", "+/-", ".", "=" };
    private JButton[] jb = new JButton[names.length];
    private double x = 0d;
    private double y = 0d;
    private int z;// 作为运算符的选择
    StringBuffer str;
    JPanel p;
    JPanel p1;
    JTextField jt;
    MenuItem mi; public Mycalculator()
    {
    super("Followme_1987");
    MenuBar mb = new MenuBar();// 设置菜单栏
    setMenuBar(mb);
    Menu me = new Menu("编辑");
    Menu me1 = new Menu("关于");
    Menu me2 = new Menu("帮助");
    mi = new MenuItem("请点我");
    mi.addActionListener(new Mc());
    me1.add(mi);
    mb.add(me);
    mb.add(me1);
    mb.add(me2);
    jt = new JTextField(19);// 创建文本框 用于显示
    jt.setHorizontalAlignment(JTextField.RIGHT);
    jt.setText("0.");
    jt.setEditable(false);
    p = new JPanel(); // 创建一块板儿 并将文本框加入
    p.setBounds(8, 2, 220, 30);
    p.setLayout(new FlowLayout(FlowLayout.LEFT));
    p.add(jt);
    p1 = new JPanel(); // 创建另一块儿板儿
    p1.setLayout(new GridLayout(5, 4, 5, 5));
    p1.setBounds(13, 35, 210, 140);
    jt.setBackground(Color.getHSBColor(23, 25, 125));
    for (int i = 0; i < jb.length; i++)
    { // 加入按钮
    jb[i] = new JButton(names[i]);
    jb[i].setMargin(new Insets(4, 1, 4, 1));
    p1.add(jb[i]);
    if (i == 1 || i == 2 || i == 0)
    {
    jb[i].setForeground(Color.BLUE);
    }
    else if (i == 3 || i == 7 || i == 11 || i == 15)
    {
    jb[i].setForeground(Color.RED);
    }
    else if (i == 19)
    {
    jb[i].setForeground(Color.YELLOW);
    jb[i].setBackground(Color.RED);
    }
    else
    {
    jb[i].setBackground(Color.DARK_GRAY);
    jb[i].setForeground(Color.YELLOW);
    }
    jb[i].addActionListener(new Mc()); }// 以上颜色带给人 轻松的感觉 避免视觉疲劳 setLayout(null);
    add(p1);
    add(p);
    str = new StringBuffer(); } /**
     * @param args
     */
    public static void main(String[] args)
    { // TODO Auto-generated method stub
    Mycalculator frame = new Mycalculator();
    frame.setBounds(400, 200, 240, 230);
    // frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
    frame.setVisible(true);
    frame.setResizable(false);
    } public class Mc implements ActionListener
    {
    public void actionPerformed(ActionEvent e)
    {
    if (e.getSource() == mi)
    {
    JOptionPane.showMessageDialog(null, "楼主要记得结贴......");
    }
    if (e.getSource() == jb[0])
    { // 按下退格键
    if (!jt.getText().trim().equals("0."))
    {
    if (str.length() != 1)
    { jt.setText(str.delete(str.length() - 1, str.length())
    .toString()); }
    else
    {
    jt.setText("0.");
    str.setLength(0);
    }
    y = Double.parseDouble(jt.getText().trim());
    }
    }
    else if (e.getSource() == jb[1] || e.getSource() == jb[2])
    { // 按下CE键或者C键
    jt.setText("0.");
    str.setLength(0);
    x = 0d;
    y = 0d;
    z = 0;
    }
    else if (e.getSource() == jb[3])
    { // 按下除号键 并且设置z=1
    x = Double.parseDouble(jt.getText().trim());
    str.setLength(0);
    y = 0d;
    z = 1;
    }
    else if (e.getSource() == jb[7])
    { // 按下乘号键并且设置z=2
    x = Double.parseDouble(jt.getText().trim());
    str.setLength(0);
    y = 0d;
    z = 2;
    }
    else if (e.getSource() == jb[11])
    { // 按下减号键并且设置z=3
    x = Double.parseDouble(jt.getText().trim());
    str.setLength(0);
    y = 0d;
    z = 3;
    }
    else if (e.getSource() == jb[15])
    { // 按下加号键并且设置z=4
    x = Double.parseDouble(jt.getText().trim());
    str.setLength(0);
    y = 0d;
    z = 4;
    }
    else if (e.getSource() == jb[19])
    { // 按下=号键
    str.setLength(0);
    switch (z)
    {
    case 1:
    jt.setText("" + (x / y));
    break;
    case 2:
    jt.setText("" + (x * y));
    break;
    case 3:
    jt.setText("" + (x - y));
    break;
    case 4:
    jt.setText("" + (x + y));
    break;
    }
    }
    else if (e.getSource() == jb[17])
    { // 按下+/-
    if (jt.getText().trim().equals("0."))
    {
    }
    else
    {
    // x = Double.parseDouble(jt.getText().trim());
    // jt.setText("" + (-x));
    if (jt.getText().trim().startsWith("-"))
    {
    jt.setText(jt.getText().trim().substring(1));
    }
    else
    {
    jt.setText("-" + jt.getText().trim());
    }
    }
    }
    else if (e.getSource() == jb[18])
    { // 按下小数点
    if (jt.getText().trim().indexOf(".") != -1)
    {// 字符串中有小数点
    if (jt.getText().trim().equals("0."))
    { // 为初始状态
    str.setLength(0);
    jt.setText(str.append("0.").toString());
    }
    else
    {
    }
    } else
    {
    jt.setText(str.append(e.getActionCommand()).toString());
    }
    y = 0d;
    }
    else if (e.getSource() == jb[16])
    {// 按下0键
    if (!jt.getText().trim().equals("0."))
    {
    jt.setText(str.append(e.getActionCommand()).toString());
    y = Double.parseDouble(e.getActionCommand().trim());
    }
    else
    {
    }
    }
    else
    {// 按下其他数字键 jt.setText(str.append(e.getActionCommand()).toString());
    y = Double.parseDouble(jt.getText().trim());
    }
    }
    }
    }
      

  3.   

    发个CoreJava里面用Swing写的给你参考一下。个人感觉很经典
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;/**
     * @version 1.33 2007-06-12
     * @author Cay Horstmann
     */
    public class Calculator
    {
       public static void main(String[] args)
       {
          EventQueue.invokeLater(new Runnable()
             {
                public void run()
                {
                   CalculatorFrame frame = new CalculatorFrame();
                   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   frame.setVisible(true);
                }
             });
       }
    }/**
     * A frame with a calculator panel.
     */
    class CalculatorFrame extends JFrame
    {
       public CalculatorFrame()
       {
          setTitle("Calculator");
          CalculatorPanel panel = new CalculatorPanel();
          add(panel);
          pack();
       }
    }/**
     * A panel with calculator buttons and a result display.
     */
    class CalculatorPanel extends JPanel
    {
       public CalculatorPanel()
       {
          setLayout(new BorderLayout());      result = 0;
          lastCommand = "=";
          start = true;      // add the display      display = new JButton("0");
          display.setEnabled(false);
          add(display, BorderLayout.NORTH);      ActionListener insert = new InsertAction();
          ActionListener command = new CommandAction();      // add the buttons in a 4 x 4 grid      panel = new JPanel();
          panel.setLayout(new GridLayout(4, 4));      addButton("7", insert);
          addButton("8", insert);
          addButton("9", insert);
          addButton("/", command);      addButton("4", insert);
          addButton("5", insert);
          addButton("6", insert);
          addButton("*", command);      addButton("1", insert);
          addButton("2", insert);
          addButton("3", insert);
          addButton("-", command);      addButton("0", insert);
          addButton(".", insert);
          addButton("=", command);
          addButton("+", command);      add(panel, BorderLayout.CENTER);
       }   /**
        * Adds a button to the center panel.
        * @param label the button label
        * @param listener the button listener
        */
       private void addButton(String label, ActionListener listener)
       {
          JButton button = new JButton(label);
          button.addActionListener(listener);
          panel.add(button);
       }   /**
        * This action inserts the button action string to the end of the display text.
        */
       private class InsertAction implements ActionListener
       {
          public void actionPerformed(ActionEvent event)
          {
             String input = event.getActionCommand();
             if (start)
             {
                display.setText("");
                start = false;
             }
             display.setText(display.getText() + input);
          }
       }   /**
        * This action executes the command that the button action string denotes.
        */
       private class CommandAction implements ActionListener
       {
          public void actionPerformed(ActionEvent event)
          {
             String command = event.getActionCommand();
             
             System.out.println(command);
             if (start)
             {
                if (command.equals("-"))
                {
                 System.out.println(command);
                   display.setText(command);
                   start = false;
                }
                else lastCommand = command;
             }
             else
             {
                calculate(Double.parseDouble(display.getText()));
                lastCommand = command;
                start = true;
             }
          }
       }   /**
        * Carries out the pending calculation.
        * @param x the value to be accumulated with the prior result.
        */
       public void calculate(double x)
       {
          if (lastCommand.equals("+")) result += x;
          else if (lastCommand.equals("-")) result -= x;
          else if (lastCommand.equals("*")) result *= x;
          else if (lastCommand.equals("/")) result /= x;
          else if (lastCommand.equals("=")) result = x;
          display.setText("" + result);
       }   private JButton display;
       private JPanel panel;
       private double result;
       private String lastCommand;
       private boolean start;
    }
      

  4.   

    //发个纯正awt的
    import java.lang.Math.*;
    import java.awt.Button;
    import java.awt.Font;
    import java.awt.Frame;
    import java.awt.GridLayout;
    import java.awt.Panel;
    import java.awt.TextField;
    import java.awt.Window;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.awt.event.WindowEvent;
    import java.awt.event.WindowListener;public class jisuqi extends Frame implements ActionListener, WindowListener, ItemListener {    int i;
        double c;
        String s[] = {"Backspace", "CE", "C", "7", "8", "9", "/", "sqrt", "4", "5", "6", "*", "%", "1", "2", "3", "-", "1/x", "0", " +/-", ".", "+", "="};
        Button but[] = new Button[s.length];
        TextField t1 = new TextField("0");    jisuqi() {
            super("计算器");
            setSize(250, 250);
            Font f;
            f = new Font("黑体", Font.BOLD, 45);
            for (int i = 0; i < s.length; i++) {
                but[i] = new Button(s[i]);
                but[i].addActionListener(this);
            }
            setLayout(new GridLayout(4, 1));
            Panel p1 = new Panel();
            p1.setLayout(new GridLayout(1, 1, 1, 1));
            p1.add(t1);
            add(p1);
            Panel p2 = new Panel();
            p2.setLayout(new GridLayout(1, 3));
            for (int i = 0; i < 3; i++) {
                p2.add(but[i]);
            }
            add(p2);
            Panel p3 = new Panel();
            p3.setLayout(new GridLayout(2, 5));
            for (int i = 3; i < 13; i++) {
                p3.add(but[i]);
            }
            add(p3);
            Panel p4 = new Panel();
            p4.setLayout(new GridLayout(2, 5));
            for (int i = 13; i < 23; i++) {
                p4.add(but[i]);
            }
            add(p4);
            addWindowListener(this);
            setVisible(true);
        }    public void actionPerformed(ActionEvent a) {
            String s = a.getActionCommand();
            String b;
            if (s.equals("Backspace")) {
                b = t1.getText().substring(0, t1.getText().length() - 1);
                if (b.length() == 0) {
                    t1.setText("0");
                }
                if (t1.getText().equals("0") || t1.getText().equals("")) {
                    t1.setText("0");
                } else {
                    t1.setText(b);
                }
            }
            if (s.equals("C") || s.equals("CE")) {
                t1.setText("0");
            }
            if (s.equals("0")) {
                if (t1.getText().equals("0")) {
                    t1.setText("0");
                } else {
                    t1.setText(t1.getText() + "0");
                }
            }
            if (s.equals("1")) {
                if (t1.getText().equals("0")) {
                    t1.setText("1");
                } else {
                    t1.setText(t1.getText() + "1");
                }
            }
            if (s.equals("2")) {
                if (t1.getText().equals("0")) {
                    t1.setText("2");
                } else {
                    t1.setText(t1.getText() + "2");
                }
            }
            if (s.equals("3")) {
                if (t1.getText().equals("0")) {
                    t1.setText("3");
                } else {
                    t1.setText(t1.getText() + "3");
                }
            }
            if (s.equals("4")) {
                if (t1.getText().equals("0")) {
                    t1.setText("4");
                } else {
                    t1.setText(t1.getText() + "4");
                }
            }
            if (s.equals("5")) {
                if (t1.getText().equals("0")) {
                    t1.setText("5");
                } else {
                    t1.setText(t1.getText() + "5");
                }
            }
            if (s.equals("6")) {
                if (t1.getText().equals("0")) {
                    t1.setText("6");
                } else {
                    t1.setText(t1.getText() + "6");
                }
            }
            if (s.equals("7")) {
                if (t1.getText().equals("0")) {
                    t1.setText("7");
                } else {
                    t1.setText(t1.getText() + "7");
                }
            }
            if (s.equals("8")) {
                if (t1.getText().equals("0")) {
                    t1.setText("8");
                } else {
                    t1.setText(t1.getText() + "8");
                }
            }
            if (s.equals("9")) {
                if (t1.getText().equals("0")) {
                    t1.setText("9");
                } else {
                    t1.setText(t1.getText() + "9");
                }
            }
            if (s.equals("+")) {
                b = t1.getText();
                c = Double.parseDouble(b);
                t1.setText("");
                i = 0;
            }
            if (s.equals("-")) {
                b = t1.getText();
                c = Double.parseDouble(b);
                t1.setText("");
                i = 1;
            }
            if (s.equals("*")) {
                b = t1.getText();
                c = Double.parseDouble(b);
                t1.setText("");
                i = 2;
            }
            if (s.equals("/")) {
                b = t1.getText();
                c = Double.parseDouble(b);
                t1.setText("");
                i = 3;
            }
            if (s.equals(".")) {
                if (!t1.getText().substring(t1.getText().length() - 1, t1.getText().length()).equals(".")) {
                    t1.setText(t1.getText() + ".");
                }
            }
            if (s.equals("sqrt")) {
                b = t1.getText();
                double d = Double.parseDouble(b);
                double e = Math.sqrt(d);
                t1.setText(Double.toString(e));
            }
            if (s.equals("%")) {
                b = t1.getText();
                double d = Double.parseDouble(b);
                t1.setText(Double.toString(d / 100));
            }
            if (s.equals("1/x")) {
                b = t1.getText();
                double d = Double.parseDouble(b);
                double e = 1 / d;
                t1.setText(Double.toString(e));
            }
            if (s.equals("+/-")) {
                if (t1.getText().substring(0, 1).equals("-")) {
                    t1.setText(t1.getText().substring(1, t1.getText().length()));
                } else {
                    t1.setText("-" + t1.getText());
                }
            }
            if (s.equals("=")) {
                b = t1.getText();
                double c1 = Double.parseDouble(b);
                if (i == 0) {
                    t1.setText(Double.toString(c + c1));
                }
                if (i == 1) {
                    t1.setText(Double.toString(c - c1));
                }
                if (i == 2) {
                    t1.setText(Double.toString(c * c1));
                }
                if (i == 3) {
                    t1.setText(Double.toString(c / c1));
                }
            }
        }    public void windowActivated(WindowEvent arg0) {
        }    public void windowClosed(WindowEvent arg0) {
        }    public void windowClosing(WindowEvent arg0) {
            Window f = (Window) arg0.getSource();
            f.dispose();    }    public void windowDeactivated(WindowEvent arg0) {
        }    public void windowDeiconified(WindowEvent arg0) {
        }    public void windowIconified(WindowEvent arg0) {
        }    public void windowOpened(WindowEvent arg0) {
        }    public void itemStateChanged(ItemEvent arg0) {
        }    public static void main(String[] args) {
            jisuqi s = new jisuqi();
        }
    }
      

  5.   


    /*
     这是我两年前写的,此计算机的功能不甚强大。
    它可以实现加、减、乘、除,当然,可以输入一串算式可以加括号,运算时是会判断优先级的。不过,输入算式时,一定要输入标准的,否则会没有反应。
    标准的如:12*(34/(45-32))+98
    不标准的:12(34+98)   (这里,乘号不能少)
              +12         (这也不行,呵呵)功能键:
    AC:清屏(遇到问题时,按这个键即可)
    C:退格键(即删除一个字符)
    RE: 重新显示(在按下“=”以后,算式没了,显示的是结果,如果你还想看算式,可以按下此键
    最后说明一下:如果你运行它的时候,发现只看到一个界面,没有按钮等情况,请不要怀疑我的程序,可能是系统的问题。当然,遇到这种情况,你关闭窗口。再次运行,就不会有这种问题了。如果还有什么问题的话,可以用QQ留言给我:815611030
     */
    import java.awt.*;
    import java.awt.event.*;
    import java.util.*;
    class Stack
    {
        String s[]=new String[100];
        int n=0;
        public void InQuece(String str)
        {
            s[n]=str;
            n++;
        }
        public String DeQuece()
        {
            return s[--n];
        }
        public String Front()
        {
            return s[n-1];
        }
        public void Sprint()
        {
            for(int i=n-1;i>=0;i--)
                System.out.print(s[i]+" ");
            System.out.println();
        }
    }
    public class Calculator
    {
        static Frame frm=new Frame("Calculator");
        //static TextField tff=new TextField(20);
        static Label lab=new Label("0.");
        static Panel pan=new Panel();
        static String labelstr="";
        static String ltemp="";
        static int flag=1;
        static Button b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19;
        public void setFrame()
        {
            frm.setBounds(300,150,400,350);
            frm.setLayout(null);
            frm.addWindowListener(new window());
            frm.setVisible(true);
            b0=new Button("0");b1=new Button("1");b2=new Button("2");b3=new Button("3");b4=new Button("4");b5=new Button("5");b6=new Button("6");
            b7=new Button("7");b8=new Button("8");b9=new Button("9");
            b10=new Button("+");b11=new Button("-");b12=new Button("*");b13=new Button("/");b14=new Button("AC");b15=new Button("C");b16=new Button("=");
            b17=new Button("(");b18=new Button(")");b19=new Button("RE");
            lab.setBounds(0, 30, 400, 40);
            lab.setFont(new Font("宋体",Font.PLAIN,30));
            lab.setAlignment(Label.RIGHT);
            pan.setBounds(0,60, 400, 300);
            pan.setLayout(new GridLayout(5,4));
            b0.addActionListener(new action());b1.addActionListener(new action());b2.addActionListener(new action());b3.addActionListener(new action());b4.addActionListener(new action());
            b5.addActionListener(new action());b6.addActionListener(new action());b7.addActionListener(new action());b8.addActionListener(new action());b9.addActionListener(new action());
            b10.addActionListener(new action());b11.addActionListener(new action());b12.addActionListener(new action());b13.addActionListener(new action());b14.addActionListener(new action());
            b15.addActionListener(new action());b16.addActionListener(new action());b17.addActionListener(new action());b18.addActionListener(new action());b19.addActionListener(new action());
            pan.add(b1);pan.add(b2);pan.add(b3);pan.add(b10);pan.add(b4);pan.add(b5);pan.add(b6);pan.add(b11);pan.add(b7);pan.add(b8);pan.add(b9);pan.add(b12);
            pan.add(b0);pan.add(b14);pan.add(b15);pan.add(b13);pan.add(b16);pan.add(b17);pan.add(b18);pan.add(b19);
            frm.add(lab);
            frm.add(pan);
            frm.setVisible(true);
        }
        
      

  6.   


    public double cal(String str)
        {
            str=str.trim();
            StringTokenizer st=new StringTokenizer(str,"+-*/ ",true);
            Stack sta=new Stack();
            String s,s1,s2;
            while(st.hasMoreTokens())
            {
                s=st.nextToken();
                if(s.equals("#"))
                    break;
                if(s.equals(" "))
                    continue;
                if(!(s.equals("+")||s.equals("-")||s.equals("/")||s.equals("*")))
                {
                    sta.InQuece(s);
                }
                else if(s.equals("+"))
                {
                    s2=sta.DeQuece();
                    s1=sta.DeQuece();
                    Double d1=Double.parseDouble(s1);
                    Double d2=Double.parseDouble(s2);
                    d1=d1+d2;
                    sta.InQuece(""+d1);
                }
                else if(s.equals("-"))
                {
                    s2=sta.DeQuece();
                    s1=sta.DeQuece();
                    Double d1=Double.parseDouble(s1);
                    Double d2=Double.parseDouble(s2);
                    d1=d1-d2;
                    sta.InQuece(""+d1);
                }
                else if(s.equals("/"))
                {
                    s2=sta.DeQuece();
                    s1=sta.DeQuece();
                    Double d1=Double.parseDouble(s1);
                    Double d2=Double.parseDouble(s2);
                    d1=d1/d2;
                    sta.InQuece(""+d1);
                }
                else if(s.equals("*"))
                {
                    s2=sta.DeQuece();
                    s1=sta.DeQuece();
                    Double d1=Double.parseDouble(s1);
                    Double d2=Double.parseDouble(s2);
                    d1=d1*d2;
                    sta.InQuece(""+d1);
                }
            }
            s=sta.DeQuece();
            return Double.parseDouble(s);
        }
        public String InfixToPostfix(String s)
        {
            String restr="";
            String temp="";
            StringTokenizer st=new StringTokenizer(s,"+-/*#() ",true);
            Stack sta=new Stack();
            sta.InQuece("#");
            while(st.hasMoreTokens())
            {
                temp=st.nextToken();
                if(temp.equals("#"))
                {
                    while(true)
                    {
                        String t=sta.DeQuece();
                        if(t.equals("#"))
                        {
                            break;
                        }
                        restr=restr+t+" ";
                    }
                    break;
                }
                else if(temp.equals(" "))
                    continue;
                else if(!(temp.equals("(")||temp.equals(")")||temp.equals("+")||temp.equals("-")||temp.equals("*")||temp.equals("/")))
                {
                    restr=restr+temp+" ";
                }
                else if(temp.equals(")"))
                {
                    while(true)
                    {
                        String t=sta.DeQuece();
                        if(t.equals("("))
                            break;
                        else
                        {
                            restr=restr+t+" ";
                        }
                    }
                }
                else if(temp.equals("(")||temp.equals("+")||temp.equals("-")||temp.equals("*")||temp.equals("/"))
                {
                    while(icp(temp)<=isp(sta.Front()))
                    {
                        String t=sta.DeQuece();
                        restr=restr+t+" ";
                    }
                    sta.InQuece(temp);
                }
                //sta.Sprint();
            }
            return restr;
        }
        public int icp(String s)
        {
            if(s.equals("#"))
                return 0;
            else if(s.equals("("))
                return 7;
            else if(s.equals("*")||s.equals("/"))
                return 4;
            else if(s.equals("+")||s.equals("-"))
                return 2;
            else if(s.equals(")"))
                return 1;
            else
                return -1;
        }
        public int isp(String s)
        {
            if(s.equals("#"))
                return 0;
            else if(s.equals("("))
                return 1;
            else if(s.equals("*")||s.equals("/"))
                return 5;
            else if(s.equals("+")||s.equals("-"))
                return 3;
            else if(s.equals(")"))
                return 7;
            else
                return -1;
        }
        public static void main(String args[])
        {
            Calculator c=new Calculator();
            c.setFrame();
            System.out.println(c.cal(c.InfixToPostfix("1*(2+3/4)*10#")));
        }
        static class action implements ActionListener
        {
            public void actionPerformed(ActionEvent e)
            {
                Button bu=(Button)e.getSource();
                //ltemp=labelstr;
                if(flag==1)
                {
                    labelstr="";
                    flag=0;
                }
                if(bu==b0)
                    labelstr=labelstr+"0";
                else if(bu==b1)
                    labelstr=labelstr+"1";
                else if(bu==b2)
                    labelstr=labelstr+"2";
                else if(bu==b3)
                    labelstr=labelstr+"3";
                else if(bu==b4)
                    labelstr=labelstr+"4";
                else if(bu==b5)
                    labelstr=labelstr+"5";
                else if(bu==b6)
                    labelstr=labelstr+"6";
                else if(bu==b7)
                    labelstr=labelstr+"7";
                else if(bu==b8)
                    labelstr=labelstr+"8";
                else if(bu==b9)
                    labelstr=labelstr+"9";
                else if(bu==b10)
                    labelstr=labelstr+"+";
                else if(bu==b11)
                    labelstr=labelstr+"-";
                else if(bu==b12)
                    labelstr=labelstr+"*";
                else if(bu==b13)
                    labelstr=labelstr+"/";
                else if(bu==b14)//AC
                {
                    ltemp=labelstr;
                    labelstr="0.";
                    flag=1;
                }
                else if(bu==b15)//C
                {
                    labelstr=labelstr.substring(0, labelstr.length()-1);
                    if(labelstr.length()==0)
                    {
                        labelstr="0.";
                        flag=1;
                    }
                }
                else if(bu==b16)//=
                {
                    ltemp=labelstr;
                    double b=new Calculator().cal(new Calculator().InfixToPostfix(labelstr+"#"));
                    labelstr=""+b;
                    lab.setText(labelstr);
                    flag=1;
                    return;
                }
                else if(bu==b17)
                {
                   labelstr=labelstr+"(";
                }
                else if(bu==b18)
                {
                    labelstr=labelstr+")";
                }
                else if(bu==b19)
                {
                    labelstr=ltemp;
                }
                lab.setText(labelstr);
            }
        }
        static class window extends WindowAdapter
        {
            public void windowClosing(WindowEvent e)
            {
                frm.dispose();
                System.exit(0);
            }
        }
    }