黑马程序员技术交流社区

标题: 计算器的小实验,欢迎大家交流 [打印本页]

作者: 马也keyboard    时间: 2015-6-23 23:01
标题: 计算器的小实验,欢迎大家交流
  1. package com.wipe.zc.GUIDemoTest;

  2. import java.awt.BorderLayout;
  3. import java.awt.Button;
  4. import java.awt.FlowLayout;
  5. import java.awt.Frame;
  6. import java.awt.GridLayout;
  7. import java.awt.Panel;
  8. import java.awt.TextField;
  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 javax.swing.JButton;
  14. import javax.swing.JFrame;
  15. import javax.swing.JPanel;
  16. import javax.swing.JTextField;


  17. public class CaculateTest {
  18.         static JFrame f;
  19.         static JPanel p1,p2;
  20.         static JButton b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b_and,b_cut,b_mul,b_div,b_equ;
  21.         static JButton[] btn = {b7,b8,b9,b_mul,b_div,b4,b5,b6,b_and,b_cut,b1,b2,b3,b0,b_equ};
  22.         static JButton btn_ce;
  23.         static JTextField t;
  24.         static String str = "";
  25.         static float count = 0;
  26.        
  27.         public static void main(String[] args)
  28.         {
  29.                 init();
  30.                
  31.         }
  32.        
  33.        
  34.         public static void init()
  35.         {
  36.                 f = new JFrame("myCaculate");
  37.                 f.setBounds(300, 200, 300, 200);
  38.                 f.setLayout(new BorderLayout());
  39.                
  40.                 p1 = new JPanel();
  41.                 p1.setLayout(new FlowLayout());
  42.                 p2 = new JPanel();
  43.                 p2.setLayout(new GridLayout(3,5));
  44.                
  45.                 btn[0] = new JButton("7");
  46.                 btn[1] = new JButton("8");
  47.                 btn[2] = new JButton("9");
  48.                 btn[3] = new JButton("*");
  49.                 btn[4] = new JButton("/");
  50.                 btn[5] = new JButton("4");
  51.                 btn[6] = new JButton("5");
  52.                 btn[7] = new JButton("6");
  53.                 btn[8] = new JButton("+");
  54.                 btn[9] = new JButton("-");
  55.                 btn[10] = new JButton("1");
  56.                 btn[11] = new JButton("2");
  57.                 btn[12] = new JButton("3");
  58.                 btn[13] = new JButton("0");
  59.                 btn[14] = new JButton("=");
  60.                
  61.                 t = new JTextField(20);
  62.                 btn_ce = new JButton("ce");
  63.                
  64.                 p1.add(t);
  65.                 p1.add(btn_ce);
  66.                
  67.                 for(int i = 0;i<15;i++)
  68.                 {
  69.                         p2.add(btn[i]);
  70.                 }
  71.                
  72.                
  73.                 f.add(p1,BorderLayout.NORTH);
  74.                 f.add(p2,BorderLayout.CENTER);               
  75.                 f.setResizable(false);
  76.                
  77.                 p1.setVisible(true);
  78.                 p2.setVisible(true);
  79.                 f.setVisible(true);
  80.                
  81.                 myEvent();
  82.         }
  83.        
  84.        
  85.         public static void myEvent()
  86.         {
  87.                 f.addWindowListener(new WindowAdapter()
  88.                 {
  89.                         public void windowClosing(WindowEvent e)
  90.                         {
  91.                                 System.exit(0);
  92.                         }
  93.                 });
  94.                
  95.                
  96.                 //按键7
  97.                 btn[0].addActionListener(new ActionListener()
  98.                 {
  99.                         public void actionPerformed(ActionEvent e)
  100.                         {
  101.                                 str = str + "7";
  102.                                 t.setText(str);
  103.                         }
  104.                 });
  105.                 //按键8
  106.                 btn[1].addActionListener(new ActionListener()
  107.                 {
  108.                         public void actionPerformed(ActionEvent e)
  109.                         {
  110.                                 str = str + "8";
  111.                                 t.setText(str);
  112.                         }
  113.                 });
  114.                 //按键9
  115.                 btn[2].addActionListener(new ActionListener()
  116.                 {
  117.                         public void actionPerformed(ActionEvent e)
  118.                         {
  119.                                 str = str + "9";
  120.                                 t.setText(str);
  121.                         }
  122.                 });
  123.                 //按键x
  124.                 btn[3].addActionListener(new ActionListener()
  125.                 {
  126.                         public void actionPerformed(ActionEvent e)
  127.                         {       
  128.                                 if(str.contains("+")||str.contains("-")||str.contains("*")||str.contains("/"))
  129.                                 {
  130.                                         if(str.endsWith("+")||str.endsWith("-")||str.endsWith("*")||str.endsWith("/"))
  131.                                         {
  132.                                                
  133.                                         }else
  134.                                                 {
  135.                                                         equal();
  136.                                                         str = count + "*";
  137.                                                         t.setText(str);
  138.                                                 }
  139.                                 }else
  140.                                         {
  141.                                                 if(str.length()>=1)
  142.                                                 {
  143.                                                         str = str + "+";
  144.                                                         t.setText(str);
  145.                                                 }
  146.                                         }
  147.                         }
  148.                 });
  149.                 //按键÷
  150.                 btn[4].addActionListener(new ActionListener()
  151.                 {
  152.                         public void actionPerformed(ActionEvent e)
  153.                         {
  154.                                 if(str.contains("+")||str.contains("-")||str.contains("*")||str.contains("/"))
  155.                                 {
  156.                                         if(str.endsWith("+")||str.endsWith("-")||str.endsWith("*")||str.endsWith("/"))
  157.                                         {
  158.                                                
  159.                                         }else
  160.                                                 {
  161.                                                         equal();
  162.                                                         str = count + "/";
  163.                                                         t.setText(str);
  164.                                                 }
  165.                                 }else
  166.                                         {
  167.                                                 if(str.length()>=1)
  168.                                                 {
  169.                                                         str = str + "+";
  170.                                                         t.setText(str);
  171.                                                 }
  172.                                         }
  173.                         }
  174.                 });
  175.                 //按键4
  176.                 btn[5].addActionListener(new ActionListener()
  177.                 {
  178.                         public void actionPerformed(ActionEvent e)
  179.                         {
  180.                                 str = str + "4";
  181.                                 t.setText(str);
  182.                         }
  183.                 });
  184.                 //按键5
  185.                 btn[6].addActionListener(new ActionListener()
  186.                 {
  187.                         public void actionPerformed(ActionEvent e)
  188.                         {
  189.                                 str = str + "5";
  190.                                 t.setText(str);
  191.                         }
  192.                 });
  193.                 //按键6
  194.                 btn[7].addActionListener(new ActionListener()
  195.                 {
  196.                         public void actionPerformed(ActionEvent e)
  197.                         {
  198.                                 str = str + "6";
  199.                                 t.setText(str);
  200.                         }
  201.                 });
  202.                 //按键+
  203.                 btn[8].addActionListener(new ActionListener()
  204.                 {
  205.                         public void actionPerformed(ActionEvent e)
  206.                         {
  207.                                 if(str.contains("+")||str.contains("-")||str.contains("*")||str.contains("/"))
  208.                                 {
  209.                                         if(str.endsWith("+")||str.endsWith("-")||str.endsWith("*")||str.endsWith("/"))
  210.                                         {
  211.                                                
  212.                                         }else
  213.                                                 {
  214.                                                         equal();
  215.                                                         str = count + "+";
  216.                                                         t.setText(str);
  217.                                                 }
  218.                                 }else
  219.                                         {
  220.                                                 if(str.length()>=1)
  221.                                                 {
  222.                                                         str = str + "+";
  223.                                                         t.setText(str);
  224.                                                 }
  225.                                         }
  226.                         }
  227.                 });
  228.                 //按键-
  229.                 btn[9].addActionListener(new ActionListener()
  230.                 {
  231.                         public void actionPerformed(ActionEvent e)
  232.                         {
  233.                                 if(str.contains("+")||str.contains("-")||str.contains("*")||str.contains("/"))
  234.                                 {
  235.                                         if(str.endsWith("+")||str.endsWith("-")||str.endsWith("*")||str.endsWith("/"))
  236.                                         {
  237.                                                
  238.                                         }else
  239.                                                 {
  240.                                                         equal();
  241.                                                         str = count + "-";
  242.                                                         t.setText(str);
  243.                                                 }
  244.                                 }else
  245.                                         {
  246.                                                 if(str.length()>=1)
  247.                                                 {
  248.                                                         str = str + "+";
  249.                                                         t.setText(str);
  250.                                                 }
  251.                                         }
  252.                         }
  253.                 });
  254.                 //按键1
  255.                 btn[10].addActionListener(new ActionListener()
  256.                 {
  257.                         public void actionPerformed(ActionEvent e)
  258.                         {
  259.                                 str = str + "1";
  260.                                 t.setText(str);
  261.                         }
  262.                 });
  263.                 //按键2
  264.                 btn[11].addActionListener(new ActionListener()
  265.                 {
  266.                         public void actionPerformed(ActionEvent e)
  267.                         {
  268.                                 str = str + "2";
  269.                                 t.setText(str);
  270.                         }
  271.                 });
  272.                 //按键3
  273.                 btn[12].addActionListener(new ActionListener()
  274.                 {
  275.                         public void actionPerformed(ActionEvent e)
  276.                         {
  277.                                 str = str + "3";
  278.                                 t.setText(str);
  279.                         }
  280.                 });
  281.                 //按键0
  282.                 btn[13].addActionListener(new ActionListener()
  283.                 {
  284.                         public void actionPerformed(ActionEvent e)
  285.                         {
  286.                                 str = str + "0";
  287.                                 t.setText(str);
  288.                         }
  289.                 });
  290.                 //按键=
  291.                 btn[14].addActionListener(new ActionListener()
  292.                 {
  293.                         public void actionPerformed(ActionEvent e)
  294.                         {
  295.                                 equal();
  296.                         }
  297.                 });
  298.                
  299.                 btn_ce.addActionListener(new ActionListener()
  300.                 {
  301.                         public void actionPerformed(ActionEvent e)
  302.                         {
  303.                                 str = "";
  304.                                 count = 0;
  305.                                 t.setText(str);
  306.                         }
  307.                 });
  308.                
  309.         }
  310.        
  311.        
  312.         public static void equal()
  313.         {
  314.                
  315.                 if(str.endsWith("+") == false&&str.endsWith("-") == false&&str.endsWith("*") == false&&str.endsWith("/") == false)
  316.                 {
  317.                         if(str.contains("*"))
  318.                         {
  319.                                 System.out.println(str);
  320.                                
  321.                                 String[] s = str.split("[*]");
  322.                                 float n1 = Float.parseFloat(s[0]);
  323.                                 float n2 = Float.parseFloat(s[1]);
  324.                                 count = n1*n2;
  325.                                 if((int)count == count)
  326.                                 {
  327.                                         int n = (int)count;
  328.                                         System.out.println(n);
  329.                                         str = n + "";
  330.                                         t.setText(str);
  331.                                 }else
  332.                                         {
  333.                                                 str = count+"";
  334.                                                 t.setText(str);       
  335.                                         }
  336.                         }
  337.                         if(str.contains("/"))
  338.                         {
  339.                                 String[] s = str.split("[/]");
  340.                                 float n1 = Float.parseFloat(s[0]);
  341.                                 float n2 = Float.parseFloat(s[1]);
  342.                                 count = n1/n2;
  343.                                 if((int)count == count)
  344.                                 {
  345.                                         int n = (int)count;
  346.                                         System.out.println(n);
  347.                                         str = n + "";
  348.                                         t.setText(str);
  349.                                 }else
  350.                                         {
  351.                                                 str = count+"";
  352.                                                 t.setText(str);       
  353.                                         }
  354.                         }
  355.                        
  356.                         if(str.contains("+"))
  357.                         {
  358.                                 String[] s = str.split("[+]");
  359.                                 float n1 = Float.parseFloat(s[0]);
  360.                                 float n2 = Float.parseFloat(s[1]);
  361.                                 count = n1+n2;
  362.                                 if((int)count == count)
  363.                                 {
  364.                                         int n = (int)count;
  365.                                         System.out.println(n);
  366.                                         str = n + "";
  367.                                         t.setText(str);
  368.                                 }else
  369.                                         {
  370.                                                 str = count+"";
  371.                                                 t.setText(str);       
  372.                                         }
  373.                         }
  374.                        
  375.                         if(str.contains("-"))
  376.                         {
  377.                                 String[] s = str.split("[-]");
  378.                                 float n1 = Float.parseFloat(s[0]);
  379.                                 float n2 = Float.parseFloat(s[1]);
  380.                                 count = n1-n2;
  381.                                 if((int)count == count)
  382.                                 {
  383.                                         int n = (int)count;
  384.                                         System.out.println(n);
  385.                                         str = n + "";
  386.                                         t.setText(str);
  387.                                 }else
  388.                                         {
  389.                                                 str = count+"";
  390.                                                 t.setText(str);       
  391.                                         }
  392.                         }
  393.                        
  394.                 }
  395.         }
  396.        
  397.        
  398. }
复制代码





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2