package
   as;
  import
   java.awt.
  *
  ;
  import
   javax.swing.
  *
  ;
  import
   java.awt.event.
  *
  ;
  public
   
  class
   JiSuanQi 
  implements
   ActionListener{    
  /**
       * 程序功能: 计算器     *      * Bug: 1)小数点:设一个Boolean成员变量,在点击后不可用。。。在"+-/*"中设为可用。     
  */
          
  //
  step1  Define Container
  
          
  private
   JFrame fra 
  =
   
  new
   JFrame(
  "
  计算器
  "
  );        
  private
   Panel panel 
  =
   
  new
   Panel();        
  private
   
  float
   sum,sum1,sum2;        
  private
   
  char
   zifu;        
  private
   
  boolean
   ii
  =
  true
  ;        Container con 
  =
   fra.getContentPane();        JMenuBar bar 
  =
   
  new
   JMenuBar();        JMenu  JMenu1 
  =
   
  new
   JMenu(
  "
  编辑
  "
  );        JMenu  JMenu2 
  =
   
  new
   JMenu(
  "
  查看
  "
  );        JMenu  JMenu3
  =
   
  new
   JMenu(
  "
  帮助
  "
  );        JMenuItem  JMenuitem
  =
   
  new
   JMenuItem(
  "
  帮助111
  "
  );         JMenuItem  JMenuitem1
  =
   
  new
   JMenuItem(
  "
  帮助111
  "
  );             
  //
  step3  Define Component
  
          TextField text 
  =
   
  new
   TextField();        JButton bu1 
  =
   
  new
   JButton(
  "
  1
  "
  );        JButton bu2 
  =
   
  new
   JButton(
  "
  2
  "
  );        JButton bu3 
  =
   
  new
   JButton(
  "
  3
  "
  );        JButton bu4 
  =
   
  new
   JButton(
  "
  4
  "
  );        JButton bu5 
  =
   
  new
   JButton(
  "
  5
  "
  );        JButton bu6 
  =
   
  new
   JButton(
  "
  6
  "
  );        JButton bu7 
  =
   
  new
   JButton(
  "
  7
  "
  );        JButton bu8 
  =
   
  new
   JButton(
  "
  8
  "
  );        JButton bu9 
  =
   
  new
   JButton(
  "
  9
  "
  );        JButton bu0 
  =
   
  new
   JButton(
  "
  0
  "
  );        JButton bujia 
  =
   
  new
   JButton(
  "
  +
  "
  );        JButton bujian 
  =
   
  new
   JButton(
  "
  -
  "
  );        JButton bucheng 
  =
   
  new
   JButton(
  "
  *
  "
  );        JButton buchu 
  =
   
  new
   JButton(
  "
  /
  "
  );        JButton budian 
  =
   
  new
   JButton(
  "
  .
  "
  );        JButton bufuhao 
  =
   
  new
   JButton(
  "
  +/-
  "
  );        JButton budenghao 
  =
   
  new
   JButton(
  "
  =
  "
  );        JButton buqingling 
  =
   
  new
   JButton(
  "
  C
  "
  );            
  public
   
  void
   m()    {            
  //
  step2  Define  Layout
  
          con.setLayout(
  new
   BorderLayout());        panel.setLayout(
  new
   GridLayout(
  5
  ,
  4
  ,
  4
  ,
  4
  ));        buqingling.setForeground(Color.RED);        
  //
  step5  把组件(subassembly)放在Panel中
  
          panel.add(bu1);        panel.add(bu2);        panel.add(bu3);        panel.add(bujia);        panel.add(bu4);        panel.add(bu5);        panel.add(bu6);        panel.add(bujian);        panel.add(bu7);        panel.add(bu8);        panel.add(bu9);        panel.add(bucheng);        panel.add(bu0);        panel.add(bufuhao);        panel.add(budian);                panel.add(buchu);        panel.add(buqingling);        panel.add(budenghao);            
  /*
  JMenu1.add("复制");        JMenu1.add("粘贴");        JMenu2.add("标准型");        JMenu2.add("科学型");        JMenu2.addSeparator();        JMenu2.add("数学分组");        //JMenu3.add("帮助");
  */
          JMenu1.add(JMenuitem1);        bar.add(JMenu1);        bar.add(JMenu2);        JMenu3.add(JMenuitem);        bar.add(JMenu3);        fra.setJMenuBar(bar);                        
  //
  把Panel放到Fream中
  
          con.add(panel,BorderLayout.CENTER);        con.add(text,BorderLayout.NORTH);        
  //
  对 JJButton 进行事件处理
  
          bu1.addActionListener(
  this
  );        bu2.addActionListener(
  this
  );        bu3.addActionListener(
  this
  );        bu4.addActionListener(
  this
  );        bu5.addActionListener(
  this
  );        bu6.addActionListener(
  this
  );        bu7.addActionListener(
  this
  );        bu8.addActionListener(
  this
  );        bu9.addActionListener(
  this
  );        bu0.addActionListener(
  this
  );        bujia.addActionListener(
  this
  );        bujian.addActionListener(
  this
  );        bucheng.addActionListener(
  this
  );        buchu.addActionListener(
  this
  );        budian.addActionListener(
  this
  );        bufuhao.addActionListener(
  this
  );        budenghao.addActionListener(
  this
  );        buqingling.addActionListener(
  this
  );        
  //
  show windows size and window
  
          fra.setSize(
  230
  ,
  200
  );        fra.setResizable(
  false
  );
  //
  屏蔽最大化 
  
          fra.setVisible(
  true
  );
  //
  显示Frame        
  //
  关闭windows窗口
  
          fra.addWindowListener(
  new
   WindowAdapter()                {                 
  public
   
  void
   windowClosing(WindowEvent e)                 {                     System.exit(
  0
  );                 }                }                );            }    
  public
   
  void
   actionPerformed(ActionEvent e)    {       String str
  =
  e.getActionCommand();
  //
  获取用户点击按扭上的文字是什么。
  
         String shuzi
  =
  "
  0123456789
  "
  ;       String yunsuan
  =
  "
  +-*/
  "
  ;              
  if
  (shuzi.indexOf(str)
  >=
  0
  )
  //
  判断返回的数值是否大于0
  
         {               text.setText(text.getText()
  +
  str);               
  //
  ii=true;
  
         }       
  else
   
  if
  (yunsuan.indexOf(str)
  >=
  0
  )                {                   sum1
  =
  Float.parseFloat(text.getText());                   text.setText(
  ""
  );                   zifu
  =
  yunsuan.charAt(yunsuan.indexOf(str));                   ii
  =
  true
  ;                }       
  else
   
  if
  (str.equals(
  "
  .
  "
  ) 
  &&
   ii
  ==
  true
  )                {                                        text.setText(text.getText()
  +
  str);                    ii
  =
  false
  ;                }       
  else
   
  if
  (str.equals(
  "
  =
  "
  ))                {                   sum2
  =
  Float.parseFloat(text.getText());                   
  switch
  (zifu)                       {                          
  case
   
  '
  +
  '
  :                                      sum
  =
  sum1
  +
  sum2;                                    text.setText(
  ""
  +
  sum);                                                                       
  break
  ;                                                             
  case
   
  '
  -
  '
  :sum
  =
  sum1
  -
  sum2;                                    text.setText(
  ""
  +
  sum);                                    
  break
  ;                          
  case
   
  '
  *
  '
  :sum
  =
  sum1
  *
  sum2;                                    text.setText(
  ""
  +
  sum);                                    
  break
  ;                          
  case
   
  '
  /
  '
  :sum
  =
  sum1
  /
  sum2;                                    text.setText(
  ""
  +
  sum);                                    
  break
  ;                       }                                   }       
  else
   
  if
  (str.equals(
  "
  C
  "
  ))       {           text.setText(
  ""
  );           sum
  =
  0
  ;           sum1
  =
  0
  ;           sum2
  =
  0
  ;       }           }    
  public
   
  static
   
  void
   main(String[] args) {        
  //
   TODO Auto-generated method stub
  
            JiSuanQi ji 
  =
   
  new
   JiSuanQi();          ji.m();    }}
  
                
        
    
 
                    转载请注明原文地址: https://ibbs.8miu.com/read-31688.html