Calculator

From , 2 Years ago, written in Java, viewed 214 times.
URL https://pastebin.vip/view/4e9cec1f
  1. 111111111111111111111111111111111111111111111111111111111111111111111
  2. import java.awt.BorderLayout;
  3. import java.awt.Button;
  4. import java.awt.Color;
  5. import java.awt.Font;
  6. import java.awt.Frame;
  7. import java.awt.GridLayout;
  8. import java.awt.Panel;
  9. import java.awt.event.ActionEvent;
  10. import java.awt.event.ActionListener;
  11. import java.awt.event.WindowAdapter;
  12. import java.awt.event.WindowEvent;
  13. import java.awt.event.WindowListener;
  14. import java.rmi.server.Operation;
  15. import java.text.NumberFormat;
  16. import java.util.LinkedList;
  17.  
  18. import javax.naming.LinkLoopException;
  19. import javax.swing.JButton;
  20. import javax.swing.JFrame;
  21. import javax.swing.JPanel;
  22. import javax.swing.JTextField;
  23. import javax.swing.border.BevelBorder;
  24. import javax.swing.border.SoftBevelBorder;
  25.  
  26. public class ComputerPad extends Frame implements ActionListener{
  27.         NumberButton numberButton[];                     //数字按钮数组
  28.         OperationButton operationButton[];               //运算符号按钮数组
  29.         JTextField resultShow;
  30.         //小数点按钮,正负号按钮,退格按钮,求倒数按钮,等号按钮,清零按钮
  31.         JButton btn_point,btn_symbol,btn_quit,btn_lastCount,btn_equal,btn_clear;  //按钮
  32.         LinkedList linkedList =new LinkedList();//负责存储数据的对象
  33.         String operation[]={"+","-","*","/"};//运算发号数组
  34.         boolean flag=false;                  //是否按下等号
  35. public void f(){
  36.         JFrame frame=new JFrame("计算器");
  37.         frame.setBounds(200,100,320,250);
  38.         JPanel panel=new JPanel();
  39.         JPanel panel1=new JPanel();
  40.         numberButton=new NumberButton[10];//共有十个数字按钮
  41.         for (int i = 0; i < 10 ;i++) {
  42.                 numberButton[i]=new NumberButton(i);
  43.                 numberButton[i].addActionListener(this);
  44.         }
  45.         operationButton =new OperationButton[4];
  46.         for (int i = 0; i <4; i++) {
  47.                 operationButton[i]=new OperationButton(operation[i]);
  48.                 operationButton[i].addActionListener( this);
  49.         }
  50.         btn_point=new JButton(".");//小数点
  51.         btn_symbol=new JButton("+/-");//正负号
  52.         btn_equal=new JButton("=");//等号
  53.         btn_quit=new JButton("退格");//退格
  54.         btn_lastCount=new JButton("1/x");//倒数
  55.         btn_clear=new JButton("c");//清空
  56.  
  57.         btn_clear.setForeground(Color.red);
  58.         btn_quit.setForeground(Color.red);
  59.         btn_equal.setForeground(Color.red);
  60.         btn_lastCount.setForeground(Color.blue);
  61.         btn_symbol.setForeground(Color.blue);
  62.         btn_point.setForeground(Color.blue);   
  63.        
  64.         btn_clear.addActionListener(this);
  65.         btn_equal.addActionListener(this);
  66.         btn_lastCount.addActionListener(this);
  67.         btn_point.addActionListener(this);
  68.         btn_quit.addActionListener(this);
  69.         btn_symbol.addActionListener(this);
  70.        
  71.         resultShow=new JTextField(20);
  72.         resultShow.setHorizontalAlignment(JTextField.RIGHT);
  73.         resultShow.setForeground(Color.blue);
  74.         resultShow.setFont(new Font("TimesRoman",Font.PLAIN,14));
  75.         resultShow.setBorder(new SoftBevelBorder(BevelBorder.LOWERED));
  76.         resultShow.setBackground(Color.white);
  77.         resultShow.setEditable(false);
  78.        
  79.         panel1.add(resultShow);
  80.         panel.setLayout(new GridLayout(4,5));//面板中的第一行
  81.         panel.add(numberButton[1]);
  82.         panel.add(numberButton[2]);
  83.         panel.add(numberButton[3]);
  84.         panel.add(operationButton[0]);
  85.         panel.add(btn_clear);
  86.         //面板第二行
  87.         panel.add(numberButton[4]);
  88.         panel.add(numberButton[5]);
  89.         panel.add(numberButton[6]);
  90.         panel.add(operationButton[1]);
  91.         panel.add(btn_quit);
  92.         //面板中的第三行
  93.         panel.add(numberButton[7]);
  94.         panel.add(numberButton[8]);
  95.         panel.add(numberButton[9]);
  96.         panel.add(operationButton[2]);
  97.         panel.add(btn_lastCount);
  98.         //面板中的第四行
  99.         panel.add(numberButton[0]);
  100.         panel.add(btn_symbol);
  101.         panel.add(btn_point);
  102.         panel.add(operationButton[3]);
  103.         panel.add(btn_equal);
  104.        
  105.         frame.add(panel1, BorderLayout.NORTH);
  106.         frame.add(panel,BorderLayout.CENTER);
  107.        
  108.         addWindowListener(new WindowAdapter() {
  109.                 @Override
  110.                 public void windowClosing(WindowEvent e) {
  111.                         System.exit(0);
  112.                 }
  113.         });
  114.         frame.setVisible(true);
  115.         setResizable(false);
  116.         validate();
  117. }
  118. @Override
  119. public void actionPerformed(ActionEvent e) {
  120.         // TODO Auto-generated method stub
  121.         if(e.getSource() instanceof NumberButton)//如果数遍单击数字按钮
  122.         {
  123.                 NumberButton b=(NumberButton) e.getSource();
  124.                 if (linkedList.size()==0) {//如果链表中没有节点
  125.                          int number=b.getNumber();//获取按钮上的数字
  126.                          linkedList.add(""+number);//将数据添加到链表
  127.                          resultShow.setText(""+number);//将两个数字收尾相接
  128.                          flag=false;
  129.                 }
  130.                 else if(linkedList.size()==1&&flag==false){
  131.                         int number=b.getNumber();
  132.                         String num=(String) linkedList.getFirst();
  133.                         String s=num.concat(""+number);
  134.                         linkedList.set(0, s);
  135.                         resultShow.setText(s);
  136.                 }
  137.                 else if(linkedList.size()==1&&flag==true){
  138.                         int number=b.getNumber();
  139.                         linkedList.removeFirst();
  140.                         linkedList.add(""+number);      //将数据添加到链表
  141.                         flag=false;
  142.                         resultShow.setText(""+number);
  143.                 }
  144.                 else if(linkedList.size()==2){//链表中已有2个节点
  145.                         int number=b.getNumber();//获取按钮上数字
  146.                         linkedList.add(""+number);//链表添加第三个节点,注意:第二个节点是运算符号。
  147.                         resultShow.setText(""+number);
  148.                 }
  149.                 else if(linkedList.size()==3){//链表中已有3个节点
  150.                         int number=b.getNumber();
  151.                         String num=(String) linkedList.getLast();
  152.                         String s=num.concat(""+number);//与链表第3个节点中的数字收尾相接
  153.                         linkedList.set(2, s);
  154.                         resultShow.setText(s);
  155.                 }
  156.         }
  157.        
  158.                 else if(e.getSource() instanceof OperationButton){//如果单击运算符号按钮
  159.                         OperationButton b=(OperationButton) e.getSource();
  160.                         if(linkedList.size()==1){
  161.                                 String fuhao=b.getOperator();
  162.                                 linkedList.add(fuhao);
  163.                         }
  164.                         else if(linkedList.size()==2){
  165.                                 String fuhao=b.getOperator();
  166.                                 linkedList.set(1, fuhao);
  167.                         }
  168.                         else if(linkedList.size()==3){
  169.                                 String fuhao=b.getOperator();
  170.                                 String number1=(String) linkedList.getFirst();
  171.                                 String number2=(String) linkedList.getLast();
  172.                                 String yunsuanfuhao=(String) linkedList.get(1);
  173.                                 try {
  174.                                 double n1=Double.parseDouble(number1);
  175.                                 double n2=Double.parseDouble(number2);
  176.                                 double n=0;
  177.                                 if(yunsuanfuhao.equals("+")){
  178.                                         n=n1+n2;
  179.                                 }
  180.                                 else if(yunsuanfuhao.equals("-")){
  181.                                         n=n1-n2;
  182.                                 }
  183.                                 else if(yunsuanfuhao.equals("*")){
  184.                                         n=n1*n2;
  185.                                 }
  186.                                 else if(yunsuanfuhao.equals("/")){
  187.                                         n=n1/n2;
  188.                                 }
  189.                                 linkedList.clear();//根据链表内已有的数进行运算,其结果作为新的运算数值
  190.                                 linkedList.add(""+n);
  191.                                 linkedList.add(fuhao);
  192.                                 resultShow.setText(""+n);
  193.                                 } catch (Exception e2) {
  194.                                         // TODO: handle exception
  195.                                 }
  196.                         }
  197.                 }
  198. //(1)  
  199.                 else if(e.getSource()==btn_equal){
  200.                         flag=true;
  201.                         if(linkedList.size()==1||linkedList.size()==2){
  202.                                 String num=(String) linkedList.getFirst();
  203.                                 resultShow.setText(""+num);
  204.                         }
  205.                         else if(linkedList.size()==3){
  206.                                 String number1=(String) linkedList.getFirst();
  207.                                 String number2=(String) linkedList.getLast();
  208.                                 String yunsuanfuhao=(String) linkedList.get(1);
  209.                                 try {
  210.                                         double n1=Double.parseDouble(number1);
  211.                                         double n2=Double.parseDouble(number2);
  212.                                         double n=0;
  213.                                         if(yunsuanfuhao.equals("+")){
  214.                                                 n=n1+n2;
  215.                                         }
  216.                                         else if(yunsuanfuhao.equals("-")){
  217.                                                 n=n1-n2;
  218.                                         }
  219.                                         else if(yunsuanfuhao.equals("*")){
  220.                                                 n=n1*n2;
  221.                                         }
  222.                                         else if(yunsuanfuhao.equals("/")){
  223.                                                 n=n1/n2;
  224.                                         }
  225.                                         resultShow.setText(""+n);
  226.                                         linkedList.set(0,""+n);
  227.                                         linkedList.removeLast();//将链表中的第二个运算数删除
  228.                                         linkedList.removeLast();//再将运算符号删除
  229.                                 } catch (Exception e2) {
  230.                                         // TODO: handle exception
  231.                                 }
  232.                         }
  233.                 }
  234. //(2)
  235.                 else if(e.getSource()==btn_point){
  236.                         if(linkedList.size()==0){
  237.                                 flag=false;
  238.                         }
  239.                         else if(linkedList.size()==1) {
  240.                                 String dot=btn_point.getLabel();//获取按钮上的小数点
  241.                                 String num=(String) linkedList.getFirst();
  242.                                 String s=null;
  243.                                 if(num.indexOf(dot)==-1){//嫁娶数字中不含小数点
  244.                                         s=num.concat(dot);
  245.                                         linkedList.set(0, s);
  246.                                 }
  247.                                 else{
  248.                                         s=num;
  249.                                 }
  250.                                 linkedList.set(0, s);
  251.                                 resultShow.setText(s);
  252.                         }
  253.                         else if(linkedList.size()==3){
  254.                                 String dot=btn_point.getLabel();//获取按钮上的小数点
  255.                                 String num=(String) linkedList.getLast();
  256.                                 String s=null;
  257.                                 if(num.indexOf(dot)==-1){
  258.                                         s=num.concat(dot);
  259.                                         linkedList.set(2, s);
  260.                                 }
  261.                                 else{
  262.                                         s=num;
  263.                                 }
  264.                                 resultShow.setText(s);
  265.                         }
  266.                 }
  267. //(3)  
  268.                 else if(e.getSource()==btn_quit){
  269.                         if(linkedList.size()==1){
  270.                                 String num=(String) linkedList.getFirst();
  271.                                 if(num.length()>=1){
  272.                                         num=num.substring(0,num.length()-1);
  273.                                         linkedList.set(0, num);
  274.                                         resultShow.setText(num);
  275.                                 }else{
  276.                                         linkedList.removeLast();
  277.                                         resultShow.setText("0");
  278.                                 }
  279.                         }
  280.                         else if(linkedList.size()==3){
  281.                                 String num=(String) linkedList.getLast();
  282.                                 if(num.length()>=1){
  283.                                         num=num.substring(0, num.length()-1);
  284.                                         linkedList.set(2, num);
  285.                                 }
  286.                                 else{
  287.                                         linkedList.removeLast();
  288.                                         resultShow.setText("0");
  289.                                 }
  290.                         }
  291.                 }
  292. //(4)  
  293.                 else if(e.getSource()==btn_symbol){
  294.                         if(linkedList.size()==1){
  295.                                 String number1=(String) linkedList.getFirst();
  296.                                 try {
  297.                                         double d=Double.parseDouble(number1);
  298.                                         d=-1*d;
  299.                                         String str=String.valueOf(d);
  300.                                         linkedList.set(0, str);
  301.                                         resultShow.setText(str);
  302.                                 } catch (Exception e2) {
  303.                                         // TODO: handle exception
  304.                                 }
  305.                         }
  306.                         else if(linkedList.size()==3){
  307.                                 String number2=(String) linkedList.getLast();
  308.                                 try {
  309.                                         double d=(Double) linkedList.getLast();
  310.                                         d=-1*d;
  311.                                         String str=String.valueOf(d);
  312.                                         linkedList.set(2, str);
  313.                                         resultShow.setText(str);
  314.                                 } catch (Exception e2) {
  315.                                         // TODO: handle exception
  316.                                 }
  317.                         }
  318.                 }
  319. //(5)
  320.                 else if(e.getSource()==btn_lastCount){
  321.                         if(linkedList.size()==1||linkedList.size()==2){
  322.                                 String number1=(String) linkedList.getFirst();
  323.                                 try {
  324.                                         double d=Double.parseDouble(number1);
  325.                                         d=1.0/d;
  326.                                         String str=String.valueOf(d);
  327.                                         linkedList.set(0, str);
  328.                                         resultShow.setText(str);
  329.                                 } catch (Exception e2) {
  330.                                         // TODO: handle exception
  331.                                 }
  332.                         }
  333.                         else if(linkedList.size()==3){
  334.                                 String number2=(String) linkedList.getLast();
  335.                                 try {
  336.                                         double d=Double.parseDouble(number2);
  337.                                         d=1.0/d;
  338.                                         String str=String.valueOf(d);
  339.                                         linkedList.set(0, str);
  340.                                 } catch (Exception e2) {
  341.                                         // TODO: handle exception
  342.                                 }
  343.                         }
  344.                 }
  345. //(6)  
  346.                 else if(e.getSource()==btn_clear){
  347.                         flag=false;
  348.                         resultShow.setText("0");
  349.                         linkedList.clear();
  350.                 }
  351. }
  352. public static void main(String[] args) {
  353.         ComputerPad c=new ComputerPad();
  354.         c.f();
  355.  
  356.        
  357. }
  358.         }
  359. 2222222222222222222222222222222222222222222222222222222
  360. import java.awt.Button;
  361. import java.awt.Color;
  362. import java.awt.GraphicsEnvironment;
  363. import java.awt.HeadlessException;
  364. public class NumberButton extends Button{
  365.         int number;
  366.         public NumberButton(int number) {
  367.                 super(" "+number);// public Button(String label) throws HeadlessException { GraphicsEnvironment.checkHeadless();this.label = label; }  构造一个带指定标签的按钮。
  368.                 this.number=number;
  369.                 setForeground(Color.blue);
  370.         }
  371.         public int getNumber() {
  372.                 return number;
  373.         }
  374. }
  375. 3333333333333333333333333333333333333333333333333333333333333
  376. import java.awt.Button;
  377. import java.awt.Color;
  378.  
  379. public class OperationButton extends Button{
  380.                 String operator;
  381.                 public OperationButton(String s){
  382.                         super(s);
  383.                         operator=s;
  384.                         setForeground(Color.red);
  385.                 }
  386.         public String getOperator(){
  387.                 return operator;
  388.         }
  389. }

Reply to "Calculator"

Here you can reply to the paste above

captcha

https://burned.cc - Burn After Reading Website