2020-11-02

使用JAVA制作一个能够实现加减乘除的计算器

老师让采用边界布局管理器和网格布局管理器制作一个简单的计算器。
要求显示的文本框再北区,按键在中区和南区。

代码展示:
QQ截图
QQ截图接166行
运行结果
QQ图片
代码:
package Jishuanqi;
import javax.swing.;
import java.awt.
;
import java.awt.event.*;
public class Jishuanqi extends JFrame implements ActionListener{
JTextField jtf;
JButton bt1,bt2,bt3,bt4,bt5,bt6,bt7,bt8,bt9,bt10,bt11,bt12,bt13,bt14,bt15,bt16,bt17;
String str = “”;
double x;
double y;
double result;
int n;
//创建一个空的主窗体
public Jishuanqi(String title) {
super(title);
this.setSize(300,340);
this.setResizable(false); //设置窗口大小不可改变;
}

public void JText() {
	JPanel p1 = new JPanel(new BorderLayout());//新建面板使用边界布局
	JPanel p = new JPanel();
	jtf = new JTextField(24);
	p.add(jtf);
    p1.add(p,BorderLayout.NORTH);//将文本框添加到北区
	JPanel p2 = new JPanel(new GridLayout(4,4,5,5));//新建面板使用网格布局
	bt1 = new JButton("1");
	bt2 = new JButton("2");
	bt3 = new JButton("3");
	bt4 = new JButton("+");
	bt5 = new JButton("4");
	bt6 = new JButton("5");
	bt7 = new JButton("6");
	bt8 = new JButton("-");
	bt9 = new JButton("7");
	bt10 = new JButton("8");
	bt11 = new JButton("9");
	bt12 = new JButton("0");
	bt13 = new JButton("*");
	bt14 = new JButton("/");
	bt15 = new JButton("清除");
	bt16 = new JButton(".");
    bt1.addActionListener(this);
    bt2.addActionListener(this);
    bt3.addActionListener(this);
    bt4.addActionListener(this);
    bt5.addActionListener(this);
    bt6.addActionListener(this);
    bt7.addActionListener(this);
    bt8.addActionListener(this);
    bt9.addActionListener(this);
    bt10.addActionListener(this);
    bt11.addActionListener(this);
    bt12.addActionListener(this);
    bt13.addActionListener(this);
    bt14.addActionListener(this);
    bt15.addActionListener(this);
    bt16.addActionListener(this);
    
	p2.add(bt1);
	p2.add(bt2);
	p2.add(bt3);
	p2.add(bt4);
	p2.add(bt5);
	p2.add(bt6);
	p2.add(bt7);
	p2.add(bt8);
	p2.add(bt9);
	p2.add(bt10);
	p2.add(bt11);
	p2.add(bt12);
	p2.add(bt13);
	p2.add(bt14);
	p2.add(bt15);
	p2.add(bt16);
	p1.add(p2,BorderLayout.CENTER);//将网格布局的按钮添加到中区
 	bt17 = new JButton("=");
 	bt17.addActionListener(this);
	p1.add(bt17,BorderLayout.SOUTH);
	this.add(p1);
	this.setVisible(true);
}
public static void main(String[] args) {
	Jishuanqi v = new Jishuanqi("计算器");
	v.JText();	
	}

@Override
public void actionPerformed(ActionEvent e) {
	if(e.getActionCommand().equals("1")) {
		str = str+"1";				//连接字符串;
		jtf.setText(str);			//显示输入;
		jtf.setHorizontalAlignment(JTextField.RIGHT);		//设置右对齐;
	}else if(e.getActionCommand().equals("2")) {
		str = str+"2";
		jtf.setText(str);
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("3")) {
		str = str+"3";
		jtf.setText(str);
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("4")) {
		str = str+"4";
		jtf.setText(str);
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("5")) {
		str = str+"5";
		jtf.setText(str);
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("6")) {
		str = str+"6";
		jtf.setText(str);
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("7")) {
		str = str+"7";
		jtf.setText(str);
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("8")) {
		str = str+"8";
		jtf.setText(str);
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("9")) {
		str = str+"9";
		jtf.setText(str);
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("0")) {
		str = str+"0";
		jtf.setText(str);
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("清除")) {
		str = "";
		jtf.setText("");
		jtf.setHorizontalAlignment(JTextField.RIGHT);
	}else if(e.getActionCommand().equals("+")) {
		x = Double.parseDouble(str);					//将输入字符串转换成浮点数;
		  str = "";									//清除上一输入;		
		  jtf.setText("");							//空白显示;
		  n = 1;								//计算方法1;
	}else if(e.getActionCommand().equals("-")) {
		x = Double.parseDouble(str);
		  str = "";
		  jtf.setText("");
		  n = 2;
	}else if(e.getActionCommand().equals("*")) {
		x = Double.parseDouble(str);
		  str = "";
		  jtf.setText("");
		  n = 3;
	}else if(e.getActionCommand().equals("/")) {
		x = Double.parseDouble(str);
		  str = "";
		  jtf.setText("");
		  n = 4;
	}else if(e.getActionCommand().equals("=")) {
		  y = Double.parseDouble(str);			//将下一次输入的字符串转换成浮点型;
		  switch(n){
		  case 1:result  = x + y;				//加减乘除计算;
		  break;
		  case 2:result  = x - y;
		  break;
		  case 3:result = x*y;
		  break;
		  case 4:result = x/y;
		  break;
		  }
		  str = Double.toString(result);        //将结果转换成字符串;
		  jtf.setText(str);						//显示结果
		  jtf.setHorizontalAlignment(JTextField.RIGHT);
	}
}

}
抱歉!计算器的拼音是Jisuanqi,我敲成了Jishuanqi。不过没有太大影响的哈。
方法有点蠢,但容易看懂。2020一起加油,冲冲冲!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值