java编写计算器教程_Java语言编写计算器(简单的计算器)

Java编写的一个简单计算器,本人还比较菜,只能这样了,有点代码冗余,不能连续计算。

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

public class calculate extends JFrame {

JButton[] b = new JButton[10];

JPanel panel1 = new JPanel(); // 实例化面板

JPanel panel2 = new JPanel();

JPanel panel3 = new JPanel();

JTextField answer=new JTextField(10);

JButton clear=new JButton("清除");

JButton equal=new JButton("=");

JButton point=new JButton(".");

JButton plus=new JButton("+");

JButton minus=new JButton("-");

JButton multi=new JButton("×");

JButton division=new JButton("÷");

String foreText=new String("");

String backText=new String("");

String s=new String();

String s1=new String();

Object op=new String();

Object o=new String();

double d, dFore, dBack;

int i=9;

public static void main(String[] args) {

// TODO Auto-generated method stub

JFrame calculator =new calculate();

calculator.setVisible(true);

}

public calculate(){

setTitle("计算器");

setSize(300,300);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Toolkit kit = Toolkit.getDefaultToolkit();

Dimension screenSize = kit.getScreenSize();//获取屏幕分辨率

setLocation(screenSize.width/4,screenSize.height/4);//位置

for ( i =9; i>=0; i--) {

b[i] = new JButton(Integer.toString(i));// 实例化数字按钮

b[i].addActionListener(new MyListener1());

panel2.add(b[i]); // 增加按钮到面板

}

setLayout(new FlowLayout()); // 设置布局管理器

panel1.setLayout(new FlowLayout());

panel2.setLayout(new GridLayout(4,3,10,8));

panel3.setLayout(new GridLayout(4,1,8,12));

clear.setFont(new Font("隶书",Font.PLAIN,15));

clear.setForeground(Color.RED);

clear.addActionListener(new MyListener1());

equal.setForeground(Color.RED);

equal.addActionListener(new MyListener1());

plus.setForeground(Color.RED);

plus.addActionListener(new MyListener1());

minus.setForeground(Color.RED);

minus.addActionListener(new MyListener1());

multi.setForeground(Color.RED);

multi.addActionListener(new MyListener1());

division.setForeground(Color.RED);

division.addActionListener(new MyListener1());

equal.setFont(new Font("隶书",Font.PLAIN,20));

plus.setFont(new Font("隶书",Font.PLAIN,18));

minus.setFont(new Font("隶书",Font.PLAIN,18));

multi.setFont(new Font("隶书",Font.PLAIN,18));

division.setFont(new Font("隶书",Font.PLAIN,18));

point.addActionListener(new MyListener1());

panel1.add(answer);

panel1.add(clear);

panel2.add(point);

panel2.add(equal);

panel3.add(plus);

panel3.add(minus);

panel3.add(multi);

panel3.add(division);

add(panel1);

add(panel2);

add(panel3);

}

class MyListener1 implements ActionListener{

public void actionPerformed(ActionEvent e){

for(int i=0;i<=9;i++) {

if(e.getSource()==b[i]||e.getSource()==point){

answer.setText("");

if(e.getSource()==point){

s=foreText+".";

answer.setText(s);

}else{

if(s!=""){

answer.setText(s+b[i].getText());

foreText=s+b[i].getText();//此处应当修改,

}else{

answer.setText(foreText+b[i].getText());

foreText=foreText+b[i].getText();

}

}

}

}

if(e.getSource()==clear){

foreText="";

s="";

answer.setText("");

}

if(e.getSource()==plus||e.getSource()==minus||e.getSource()==multi||e.getSource()==division){

dFore=Double.parseDouble(foreText);

s="";

foreText="";

answer.setText("");

op=e.getSource();

}

if(e.getSource()==equal){

dBack=Double.parseDouble(foreText);

foreText="";

answer.setText("");

if(op==plus){

d=dFore+dBack;

}

if(op==minus){

d=dFore-dBack;

}

if(op==multi){

d=dFore*dBack;

}

if(op==division){

d=dFore/dBack;

}

answer.setText(""+d);

}

}

}

}

运行截图

b070245753f747a2d2b62c1e443382a6.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值