最后两道题

本文介绍了一个使用Java Swing创建的简易计算器及阶乘计算的图形用户界面应用。该应用包括两个主要部分:一是用于计算阶乘的窗口,二是具备基本算术运算功能的计算器窗口。文章详细展示了如何通过按钮事件实现数字输入、运算符选择及计算结果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class demo1_main  {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		MyWindows my=new MyWindows();
		Balac bal=new Balac();

	}

}
阶乘窗口类:

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;


public class MyWindows extends Frame  implements ActionListener{
	TextField text1,text2;
	int sum = 1;
	Button bt01;//声明三个文本框
	MyWindows()//构造函数
	{
		text1=new TextField(10);
		text2=new TextField(10);
		
		bt01=new Button("!n=");
		text1.setBounds(120, 120, 20, 80);
		text1.setBounds(120, 120, 20, 80);
		setLayout(new FlowLayout());
		add(text1);
		add(bt01);
		add(text2);
		
		text1.addActionListener(this);
		bt01.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				String num=text1.getText();
				 int number=Integer.parseInt(num);
			
				 for(int i=1;i<=number;i++)
				 {
					sum=sum*i; 
				 }
				text2.setText(sum+"");
				sum=1;
				
				
			}
			
			
		});
		setBounds(100,100,300,300);
	    this.addWindowListener(new WindowAdapter()//退出
	    {
	    	 public void windowClosing(WindowEvent e)  
	    	   {  
	    	         System.exit(0);  
	    	   } 

	    	
	    });
		
		setVisible(true);
		validate();
	
	};
	
	@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		String num=arg0.getActionCommand();
		 int number=Integer.parseInt(num);
		 
		 for(int i=1;i<=number;i++)
		 {
			sum=sum*i; 
		 }
		 text2.setText(sum+"");
		 sum=1;
		
		
		
	}
	

}

计算器类:

public class Bub {
	private double point_beyond=0.0,point_behind=0.0,number=0.0;
	private char cha;
	private int flag=0;
	public void set_number(double number)
	{
		this.number=number;
	}
	public void set_beyond(double a)
	{
		this.point_beyond=a;
	}
	public void set_behind(double a)
	{
		this.point_behind=a;
	}
	public void set_cha(char a)
	{
		this.cha=a;
	}
	public void set_flag(int f)
	{
		this.flag=f;
	}
	public double getnum()
	{
		return this.number;
	}
	public int get_flag()
	{
		return this.flag;
	}
	public double get_beyond()
	{
		return this.point_beyond;
	}
	public double get_behind()
	{
		return this.point_behind;
	}
	public char get_char()
	{
		return this.cha;
	}
	

}

计算器窗口类:

import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;


public class Balac extends JFrame implements ActionListener {
	TextField text1,text2,text3,text4;
	double sum=0.0d;
	double point_flag=0.1;
    Bub bub1=new Bub();
    Bub bub2=new Bub();
	Button bt00,bt01,bt02,bt03,bt04,bt05,bt06,bt07,bt08,bt09,bt10,bt11,bt12,bt13,bt14,bt15,bt16;
	Balac()
	{
	 
		text1=new TextField(20);
		text2=new TextField(20);
		text3=new TextField(20);
		text4=new TextField(20);
		bt00=new Button("0");
		bt01=new Button("1");
		bt02=new Button ("2");
		bt03=new Button ("3");
		bt04=new Button ("4");
		bt05=new Button ("5");
		bt06=new Button ("6");
		bt07=new Button ("7");
		bt08=new Button ("8");
		bt09=new Button ("9");
		bt10=new Button (".");
		bt11=new Button ("+");
		bt12=new Button ("-");
		bt13=new Button ("*");
		bt14=new Button ("/");
		bt15=new Button ("=");
		bt16=new Button("清空");
		setLayout(new FlowLayout());
		add(text1);
		add(text2);
		add(text4);
		add(text3);
		add(bt00);
		add(bt01);
		add(bt02);
		add(bt03);
		add(bt04);
		add(bt05);
		add(bt06);
		add(bt07);
		add(bt08);
		add(bt09);
		add(bt10);
		add(bt11);
		add(bt12);
		add(bt13);
		add(bt14);
		add(bt15);
		add(bt16);
		text1.addActionListener(this);
		text2.addActionListener(this);
		text3.addActionListener(this);
		text4.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				text4.setText(bub1.get_char()+"");
				
			}
			
		});
		this.setBounds(100, 100, 180, 230);
		this.addWindowListener(new WindowAdapter(){

			@Override
			public void windowClosing(WindowEvent e) {
				// TODO Auto-generated method stub
				System.exit(0);
				super.windowClosing(e);
			}
			
			
		});
		bt00.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+0);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+0*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+0);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+0*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		bt01.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+1);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+1*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+1);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+1*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		
		bt02.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+2);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+2*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+2);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+2*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		bt03.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+3);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+3*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+3);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+3*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		bt04.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+4);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+4*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+4);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+4*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		bt05.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+5);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+5*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+5);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+5*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		
		bt06.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+6);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+6*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+6);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+6*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		bt07.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+7);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+7*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+7);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+7*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		bt08.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+8);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+8*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+8);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+8*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		bt09.addActionListener(new ActionListener(){

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_beyond(bub1.get_beyond()*10+9);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==1)
				{
					bub1.set_behind(bub1.get_behind()+9*point_flag);
					bub1.set_number(bub1.get_behind()+bub1.get_beyond());
					text1.setText(bub1.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
				if(bub1.get_flag()==2)
				{
					bub2.set_beyond(bub2.get_beyond()*10+9);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					return ;
				}
				if(bub1.get_flag()==3)
				{
					bub2.set_behind(bub2.get_behind()+9*point_flag);
					bub2.set_number(bub2.get_behind()+bub2.get_beyond());
					text2.setText(bub2.getnum()+"");
					point_flag=point_flag*0.1d;
					return ;
				}
			}
			
		});
		bt10.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(bub1.get_flag()==0)
				{
					bub1.set_flag(1);
					return;
				}
				if(bub1.get_flag()==2)
				{
					bub1.set_flag(3);
				}
			}
			
		});
		bt11.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				point_flag=0.1;
				bub1.set_cha('+');
				bub1.set_flag(2);
				
				
				
			}
			
		});
		bt12.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				point_flag=0.1;
				bub1.set_cha('-');
				bub1.set_flag(2);
				
				
			}
			
		});
		bt13.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				point_flag=0.1;
				bub1.set_cha('*');
				bub1.set_flag(2);
				
				
			}
			
		});
		bt14.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				point_flag=0.1;
				bub1.set_cha('/');
				
				bub1.set_flag(2);
				
			}
			
		});
		bt15.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				if(bub1.get_char()=='+')
				{
					sum=bub1.getnum()+bub2.getnum();
					text4.setText(bub1.get_char()+"");
				}
				else if(bub1.get_char()=='-')
				{
					sum=bub1.getnum()-bub2.getnum();
					text4.setText(bub1.get_char()+"");
				}
				else if(bub1.get_char()=='*')
				{
					sum=bub1.getnum()*bub2.getnum();
					text4.setText(bub1.get_char()+"");
				}
				else if(bub1.get_char()=='/')
				{
					sum=bub1.getnum()/bub2.getnum();
					text4.setText(bub1.get_char()+"");
				}
				
				text3.setText(sum+"");
				bub1.set_behind(0.0d);
				bub1.set_beyond(0.0d);
				bub1.set_flag(0);
				
				
			}
			
			
		});
		bt16.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent e) {
				// TODO Auto-generated method stub
				bub1.set_behind(0.0);
				bub1.set_beyond(0.0);
				bub2.set_behind(0.0);
				bub2.set_beyond(0.0);
				bub1.set_number(0.0);
				bub2.set_number(0.0);
				text1.setText("");
				text2.setText("");
				text3.setText("");
				text4.setText("");
				point_flag=0.1;
				sum=0.0;
				bub1.set_flag(0);
				
			}
			
		});
	
		this.setVisible(true);
		this.validate();
	}
	@Override
	public void actionPerformed(ActionEvent arg0) {
		// TODO Auto-generated method stub
		if(arg0.getSource()==text1)//必须按enter键确认,麻烦
		{
			String num=text1.getText();
			
		
			bub1.set_number(Double.parseDouble(num));
			text3.setText(bub1.getnum()+"");
			return ;
		}
		
		if(arg0.getSource()==text2)
		{
			String num=text2.getText();
			bub2.set_number(Double.parseDouble(num));
			text3.setText(bub2.getnum()+"");
			return ;
		}
		if(arg0.getSource()==text3)
		{
			text3.setText("这是输出框");
			return ;
		}
		
		
	}

}

截图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值