计算器

 
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();

    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值