当前位置: 代码迷 >> J2SE >> 计算器的一个代码 演算不会写了
  详细解决方案

计算器的一个代码 演算不会写了

热度:9889   发布时间:2013-02-25 00:00:00.0
计算器的一个代码 运算不会写了
Java code
package CalcTest;import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Font;import java.awt.GridLayout;import java.awt.ScrollPane;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JMenu;import javax.swing.JMenuBar;import javax.swing.JMenuItem;import javax.swing.JOptionPane;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.text.StyleConstants;import javax.swing.text.StyleContext;import org.w3c.dom.Text;import com.sun.org.apache.bcel.internal.generic.JsrInstruction;public class Calc extends JFrame implements ActionListener{    public final int temp = 8;//定义文本框最多输入字符    String copy;    boolean enter;    double d1,d2;    JPanel ButtonPanel,okPanel;    JButton jb[];    JTextField jtf;    JScrollPane jsp;    JButton jia,jian,cheng,chu,dian,dengyu;    JMenuBar jmb;    JMenu bjM,ckM,bzM;    JTextArea jta;    JMenuItem copyM,pasteM,closeM,helpM,gyM;    JButton b1;    boolean start;    public Calc(){        enter = true;        start =true;                        Container c = getContentPane();        //**以下为菜单之类的        jmb = new JMenuBar();        bjM = new JMenu("编辑(E)");        ckM = new JMenu("查看(V)");        bzM = new JMenu("帮助(H)");                copyM = new JMenuItem("复制(C)");        pasteM = new JMenuItem("粘贴(V)");        closeM = new JMenuItem("关闭(E)");        helpM = new JMenuItem("帮助主题");        gyM = new JMenuItem("关于计算器");                jmb.add(bjM);        jmb.add(ckM);        jmb.add(bzM);                bjM.add(copyM);        bjM.add(pasteM);        ckM.add(closeM);        bzM.add(helpM);        bzM.add(gyM);        setJMenuBar(jmb);//显示菜单条        //**以上为菜单类的                        //**以下注册菜单监听器        copyM.addActionListener(this);        pasteM.addActionListener(this);        closeM.addActionListener(this);        helpM.addActionListener(this);        gyM.addActionListener(this);        //**以上注册菜单监听器                                jtf = new JTextField(35);        jtf.setText("0.");        jtf.setEditable(false);        jtf.setComponentOrientation(java.awt.ComponentOrientation.RIGHT_TO_LEFT);//设置文本框从右往左                //**以下为按钮设置        jb = new JButton[10];                jia = new JButton("+");        jian = new JButton("-");        cheng = new JButton("*");        chu = new JButton("\\");        dian = new JButton(".");        dengyu = new JButton("=");                jia.addActionListener(this);        jian.addActionListener(this);        cheng.addActionListener(this);        chu.addActionListener(this);        dian.addActionListener(this);        dengyu.addActionListener(this);                ButtonPanel = new JPanel();        for(int i=0;i<jb.length;i++){            jb[i] = new JButton(Integer.toString(i));//实现将整形转字符串            jb[i].setForeground(new Color(99,00,00));            jb[i].addActionListener(Calc.this);//为每个按钮注册监听器        }        ButtonPanel.setLayout(new GridLayout(4,4));//设置格子布局4行4列        ButtonPanel.add(jb[1]);        ButtonPanel.add(jb[2]);        ButtonPanel.add(jb[3]);        ButtonPanel.add(jia);        ButtonPanel.add(jb[4]);        ButtonPanel.add(jb[5]);        ButtonPanel.add(jb[6]);        ButtonPanel.add(jian);        ButtonPanel.add(jb[7]);        ButtonPanel.add(jb[8]);        ButtonPanel.add(jb[9]);        ButtonPanel.add(cheng);        ButtonPanel.add(jb[0]);        ButtonPanel.add(dian);        ButtonPanel.add(dengyu);        ButtonPanel.add(chu);        //**以上为按钮设置                //**以下为帮助主题        jta = new JTextArea(5,10);        jsp = new JScrollPane(jta);        jta.setEditable(false);        jta.setFont(new Font("楷体",Font.BOLD,20));        jta.append("执行简单计算\n");        jta.append("1.  键入计算的第一个数字。\n");        jta.append("2.  单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n");        jta.append("3.  键入计算的下一个数字。\n");        jta.append("4.  输入所有剩余的运算符和数字。\n");        jta.append("5.  单击“=”。\n");                //**以上为帮助主题                //**以下为清零        okPanel = new JPanel();        b1 = new JButton("C");        okPanel.add(b1);        //**以上为清零        b1.addActionListener(this);//注册监听器        c.add(jtf,BorderLayout.NORTH);        c.add(ButtonPanel,BorderLayout.CENTER);        c.add(okPanel,BorderLayout.SOUTH);        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                    }    public void actionPerformed(ActionEvent e) {        Object temp = e.getSource();        String input = e.getActionCommand();        System.out.println(input);                if(start){            jtf.setText("");//按下按钮的一瞬间清空            start = false;        }        jtf.setText(jtf.getText());                                        //将按钮挨个转换为字符串        for(int i=0;i<jb.length;i++){            if(temp==jb[i] && enter==true){                jtf.setText(jtf.getText() + Integer.toString(i));            }        }                //**以下为MemuItem进行事件        if(temp==copyM){            copy = jtf.getText();        }        if(temp==pasteM){            jtf.setText(copy);        }                if(temp==closeM){            dispose();            System.exit(0);        }        if(temp==gyM){            //JOptionPane.showMessageDialog(gyM,jsp);            JOptionPane.showMessageDialog(gyM, jsp);        }        if(temp == helpM){            JOptionPane.showMessageDialog(helpM,"使用“计算器”可以完成任意的通常借助手持计算器来完成的标准运算。 \n “计算器”可用于基本的算术运算,比如加减运算等。 \n  同时它还具有科学计算器的功能,比如对数运算和阶乘运算等。");        }        //**以上为MemuItem进行事件    }    public static void main(String[] args) {        Calc cc = new Calc();        cc.setTitle("计算器 v1.0");        cc.setSize(400, 400);        cc.setBounds(300, 300, 300, 300);        cc.setVisible(true);    }    }
  相关解决方案