java简易计算器窗口的实现,写的第二个java程序!多多指教

            昨天刚刚写了一个简易的日历程序之后,今天又试着用java 来写一个计算器的程序,这里只实现了加减乘除四则运算,不过四则运算成功了,其他的科学型计算器也不难了,关键就是监听控件,并且来实现响应。我觉得关键的地方就是从jtextfield里面获得字符串后来用float.valueof来强制转为float形,并且里面的变量要设置为类的属性,不然单独在action里面是不能够统统调用的。还有就是对settext方法的用法有了进一步的了解。

       然后就是gridlayout和borderlayout有了更熟悉的了解。

附上源代码:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.management.OperatingSystemMXBean;

import javax.swing.*;

class Caculator extends JFrame implements ActionListener{
          JPanel p=new JPanel(new GridLayout(4,4,3,3));
          JTextField t=new JTextField();   
          String str[]={"7","8","9","÷","4","5","6","*","1","2","3","-","0",".","=","+"};
          JButton btn[]=new JButton[str.length];
          float a=0,b=0,result=0,c=0;
          int operator=0;
          
     public Caculator(){
        super("my first java app");  
        setLayout(new BorderLayout());                               
        for(int i=0;i<str.length;i++){
               btn[i]=new JButton(str[i]);
               p.add(btn[i]);
         }
        t.setHorizontalAlignment(JTextField.RIGHT);
            add(t,BorderLayout.NORTH);     
            add(p,BorderLayout.CENTER);   
            setVisible(true);
            setSize(250,200);
            for(int i=0;i<str.length;i++)
            {
            	btn[i].addActionListener(this);
            }
            this.setLocationRelativeTo(null);
            setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
        }
      
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==btn[0])
		{
			t.setText(t.getText()+"7");
		}
		if(e.getSource()==btn[1])
		{
			t.setText(t.getText()+"8");
		}
		if(e.getSource()==btn[2])
		{
			t.setText(t.getText()+"9");
		}
		if(e.getSource()==btn[4])
		{
			t.setText(t.getText()+"4");
		}
		if(e.getSource()==btn[5])
		{
			t.setText( t.getText()+"5");
		}
		if(e.getSource()==btn[6])
		{
			t.setText(t.getText()+"6");
		}
		if(e.getSource()==btn[8])
		{
			t.setText(t.getText()+"1");
		}
		if(e.getSource()==btn[9])
		{
			t.setText( t.getText()+"2");
		}
		if(e.getSource()==btn[10])
		{
			t.setText( t.getText()+"3");
		}
		if(e.getSource()==btn[12])
		{
			t.setText(t.getText()+"0");
		}
	
		
		if(e.getSource()==btn[3])
		{
		    a=Float.valueOf(t.getText());
		    result=a;
		    t.setText("");
		    operator=1;
		}
		
		if(e.getSource()==btn[7])
		{
			a=Float.valueOf(t.getText());
		    result=a;
		    t.setText("");
		    operator=2;
		}
		
		if(e.getSource()==btn[11])
		{
			a=Float.valueOf(t.getText());
		    result=a;
		    t.setText("");
		    operator=3;
		}
		
		if(e.getSource()==btn[15])
		{
			a=Float.valueOf(t.getText());
		    result=a;
		    t.setText("");
		    operator=4;
		}
		
		if(e.getSource()==btn[13])
		{
		     t.setText(t.getText()+".");
		}
		
		if(e.getSource()==btn[14])
		{
			switch (operator) {
			case 1:
				b=Float.valueOf(t.getText());
				result=result/b;
				t.setText(a+" ÷ "+b+" = "+result);
				break;
			case 2:
				b=Float.valueOf(t.getText());
				result=result*b;
				t.setText(a+" * "+b+" = "+result);
				break;
			case 4:
				b=Float.valueOf(t.getText());
				result=result+b;
				t.setText(a+" + "+b+" = "+result);
				break;
			case 3:
				b=Float.valueOf(t.getText());
				result=result-b;
				t.setText(a+" - "+b+" = "+result);
				break;
			default:
				break;
			}
			
		}
		}
		
public static void main(String[] args){
    	  Caculator gl=new Caculator();
         }
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值