Java 简易计算器代码(只能整数的简易运算)
Posted qixq
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 简易计算器代码(只能整数的简易运算)相关的知识,希望对你有一定的参考价值。
这是一个Java图形用户界面(GUI)写的一个简易计算器(只做了整数的简易运算,没做小数)!
我只是一个初学Java的小白,发这个只想想对自己的学习进行一个记录,可能有很多地方实现的并不好!
本文运行环境是:win10,JDK版本:jdk13.0.2,编译环境:IDEA2020.1
运行界面:
实现代码:
addview()方法为输入框初始化和将输入框插入到窗口中!
addbutton()为按钮的初始化和按钮的插入!
内部类Acbutton是按钮的监听及处理!
package tools; import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Arrays; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JTextField; /* * 计算器 */ public class Calculator extends JFrame { private String szz1 = "", szz2 = ""; private String fuhao = ""; private JTextField jtField; int a,b; Acbutton acbutton; public Calculator() { this.setTitle("计算器"); this.setSize(280, 320); this.setLocation(300, 200); this.setResizable(false); this.setLayout(null); // 调用插入显示框方法 this.addview(); // 调用插入按钮方法 this.addbutton(); this.setVisible(true); } // 插入显示框 private void addview() { jtField = new JTextField("0"); jtField.setBounds(5, 5, 340, 50); // 设置不可编辑 jtField.setEditable(false); // 设置背景和字体 jtField.setBackground(new Color(241, 241, 241, 255)); jtField.setFont(new Font("宋体", Font.BOLD, 16)); add(jtField); } // 插入按钮 private void addbutton() { acbutton = new Acbutton(); JButton B1, B2, B3, B4, B5, B6, B7, B8, B9, B0, Bf1, Bf2, Bf3, Bf4, Bf5, bC; B1 = new JButton("1"); B2 = new JButton("2"); B3 = new JButton("3"); B4 = new JButton("4"); B5 = new JButton("5"); B6 = new JButton("6"); B7 = new JButton("7"); B8 = new JButton("8"); B9 = new JButton("9"); B0 = new JButton("0"); Bf1 = new JButton("+"); Bf2 = new JButton("-"); Bf3 = new JButton("*"); Bf4 = new JButton("/"); Bf5 = new JButton("="); bC = new JButton("C"); B1.addActionListener(acbutton); B2.addActionListener(acbutton); B3.addActionListener(acbutton); B4.addActionListener(acbutton); B5.addActionListener(acbutton); B6.addActionListener(acbutton); B7.addActionListener(acbutton); B8.addActionListener(acbutton); B9.addActionListener(acbutton); B0.addActionListener(acbutton); Bf1.addActionListener(acbutton); Bf2.addActionListener(acbutton); Bf3.addActionListener(acbutton); Bf4.addActionListener(acbutton); Bf5.addActionListener(acbutton); bC.addActionListener(acbutton); // 第一排按键1,2,3,+ B1.setBounds(5, 60, 60, 50); B2.setBounds(70, 60, 60, 50); B3.setBounds(135, 60, 60, 50); Bf1.setBounds(200, 60, 60, 50); // 第二排按键4,5,6,- B4.setBounds(5, 115, 60, 50); B5.setBounds(70, 115, 60, 50); B6.setBounds(135, 115, 60, 50); Bf2.setBounds(200, 115, 60, 50); // 第三排按键7,8,9,* B7.setBounds(5, 170, 60, 50); B8.setBounds(70, 170, 60, 50); B9.setBounds(135, 170, 60, 50); Bf3.setBounds(200, 170, 60, 50); // 第四排按键C(清空输入的内容),0,=,/ bC.setBounds(5, 225, 60, 50); B0.setBounds(70, 225, 60, 50); Bf5.setBounds(135, 225, 60, 50); Bf4.setBounds(200, 225, 60, 50); add(B1); add(B2); add(B3); add(Bf1); add(B4); add(B5); add(B6); add(Bf2); add(B7); add(B8); add(B9); add(Bf3); add(bC); add(B0); add(Bf5); add(Bf4); } class Acbutton implements ActionListener { // 监控按键被触发 public void actionPerformed(ActionEvent e) { JButton btn = (JButton) e.getSource(); String Sbin = btn.getText(); String[] sz = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; long i = Arrays.binarySearch(sz, Sbin); if (i >= 0) { // 点击按键为1~9的数字将数字加入字符串1 szz1 = szz1 + Sbin; } else if (szz1 != "" && Sbin.equals("0")) { // 值为空时不能输入零 szz1 = szz1 + "0"; } else if (Sbin.equals("+") || Sbin.equals("-") || Sbin.equals("*") || Sbin.equals("/")) { // 判断输入是否运算符 if (fuhao.equals("")) { // 输入运算符时,运算符字符串为空则将输入的运算符赋值给运算符字符串,将字符串1的值赋值给字符串2,并清空字符串1, szz2 = szz1; szz1 = ""; fuhao = Sbin; } else if (fuhao.equals("+") || fuhao.equals("-") || fuhao.equals("*") || fuhao.equals("/")) { // 判断输入运算符时运算符字符串不为空 if (szz1.equals("")) { // 判断字符串1为空,将新输入运算符替换原运算符字符串字符 fuhao = Sbin; } else if (szz2.equals("")) { // 字符串1不为空,字符串2为空,将字符串2值作为0进行运算 a = 0; b = Integer.parseInt(szz1); szz1 = ""; if (fuhao.equals("+")) { szz2 = (a + b) + ""; } else if (fuhao.equals("-")) { szz2 = (a - b) + ""; } else if (fuhao.equals("*")) { szz2 = (a * b) + ""; } else if (fuhao.equals("/")) { szz2 = (a / b) + ""; } a=0; b=0; fuhao = Sbin; } else { // 字符串1,2不为空,运算符字符串有字符,将原式运算后值存入字符串2,将新输入运算符存入运算符字符串, a = Integer.parseInt(szz2); b = Integer.parseInt(szz1); szz1 = ""; if (fuhao.equals("+")) { szz2 = (a + b) + ""; } else if (fuhao.equals("-")) { szz2 = (a - b) + ""; } else if (fuhao.equals("*")) { szz2 = (a * b) + ""; } else if (fuhao.equals("/")) { szz2 = (a / b) + ""; } a=0; b=0; fuhao = Sbin; } } } else if (Sbin.equals("=")) { // =按钮被点击监控, if (fuhao.equals("")) { // =被点击时判断有没有运算符号被存入;有运算符号根据输入的运算符号进行计算 } else if (fuhao.equals("+") || fuhao.equals("-") || fuhao.equals("*") || fuhao.equals("/")) { if (szz1.equals("")) { // 字符串1没有值时,将字符串2值赋值给字符串1值输出 szz1 = szz2; szz2 = ""; fuhao = ""; } else if (szz2.equals("")) { // 字符串2为空,将字符串2值作为0进行运算 a = 0; b = Integer.parseInt(szz1); szz2 = ""; if (fuhao.equals("+")) { // 根据输入的运算符号进行计算 szz1 = (a + b) + ""; } else if (fuhao.equals("-")) { szz1 = (a - b) + ""; } else if (fuhao.equals("*")) { szz1 = (a * b) + ""; } else if (fuhao.equals("/")) { szz1 = (a / b) + ""; } a=0; b=0; fuhao=""; } else { a = Integer.parseInt(szz2); b = Integer.parseInt(szz1); szz2 = ""; if (fuhao.equals("+")) { // 根据输入的运算符号进行计算 szz1 = (a + b) + ""; } else if (fuhao.equals("-")) { szz1 = (a - b) + ""; } else if (fuhao.equals("*")) { szz1 = (a * b) + ""; } else if (fuhao.equals("/")) { szz1 = (a / b) + ""; } a=0; b=0; fuhao=""; } } } else if (Sbin.equals("C")) { // C按钮监控,清空所有内容 szz1 = ""; szz2 = ""; fuhao = ""; } jtField.setText(szz1); } } public static void main(String[] args) { new Calculator(); } }
package 工具;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
/*
* 计算器
*/
public class Calculator extends JFrame {
private String szz1 = "", szz2 = "";
private String fuhao = "";
private JTextField jtField;
int a,b;
Acbutton acbutton;
public Calculator() {
this.setTitle("计算器");
this.setSize(280, 320);
this.setLocation(300, 200);
this.setResizable(false);
this.setLayout(null);
// 调用插入显示框方法
this.addview();
// 调用插入按钮方法
this.addbutton();
this.setVisible(true);
}
// 插入显示框
private void addview() {
jtField = new JTextField("0");
jtField.setBounds(5, 5, 340, 50);
// 设置不可编辑
jtField.setEditable(false);
// 设置背景和字体
jtField.setBackground(new Color(241, 241, 241, 255));
jtField.setFont(new Font("宋体", Font.BOLD, 16));
add(jtField);
}
// 插入按钮
private void addbutton() {
acbutton = new Acbutton();
JButton B1, B2, B3, B4, B5, B6, B7, B8, B9, B0, Bf1, Bf2, Bf3, Bf4, Bf5, bC;
B1 = new JButton("1");
B2 = new JButton("2");
B3 = new JButton("3");
B4 = new JButton("4");
B5 = new JButton("5");
B6 = new JButton("6");
B7 = new JButton("7");
B8 = new JButton("8");
B9 = new JButton("9");
B0 = new JButton("0");
Bf1 = new JButton("+");
Bf2 = new JButton("-");
Bf3 = new JButton("*");
Bf4 = new JButton("/");
Bf5 = new JButton("=");
bC = new JButton("C");
B1.addActionListener(acbutton);
B2.addActionListener(acbutton);
B3.addActionListener(acbutton);
B4.addActionListener(acbutton);
B5.addActionListener(acbutton);
B6.addActionListener(acbutton);
B7.addActionListener(acbutton);
B8.addActionListener(acbutton);
B9.addActionListener(acbutton);
B0.addActionListener(acbutton);
Bf1.addActionListener(acbutton);
Bf2.addActionListener(acbutton);
Bf3.addActionListener(acbutton);
Bf4.addActionListener(acbutton);
Bf5.addActionListener(acbutton);
bC.addActionListener(acbutton);
// 第一排按键1,2,3,+
B1.setBounds(5, 60, 60, 50);
B2.setBounds(70, 60, 60, 50);
B3.setBounds(135, 60, 60, 50);
Bf1.setBounds(200, 60, 60, 50);
// 第二排按键4,5,6,-
B4.setBounds(5, 115, 60, 50);
B5.setBounds(70, 115, 60, 50);
B6.setBounds(135, 115, 60, 50);
Bf2.setBounds(200, 115, 60, 50);
// 第三排按键7,8,9,*
B7.setBounds(5, 170, 60, 50);
B8.setBounds(70, 170, 60, 50);
B9.setBounds(135, 170, 60, 50);
Bf3.setBounds(200, 170, 60, 50);
// 第四排按键C(清空输入的内容),0,=,/
bC.setBounds(5, 225, 60, 50);
B0.setBounds(70, 225, 60, 50);
Bf5.setBounds(135, 225, 60, 50);
Bf4.setBounds(200, 225, 60, 50);
add(B1);
add(B2);
add(B3);
add(Bf1);
add(B4);
add(B5);
add(B6);
add(Bf2);
add(B7);
add(B8);
add(B9);
add(Bf3);
add(bC);
add(B0);
add(Bf5);
add(Bf4);
}
class Acbutton implements ActionListener {
// 监控按键被触发
public void actionPerformed(ActionEvent e) {
JButton btn = (JButton) e.getSource();
String Sbin = btn.getText();
String[] sz = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
long i = Arrays.binarySearch(sz, Sbin);
if (i >= 0) { // 点击按键为1~9的数字将数字加入字符串1
szz1 = szz1 + Sbin;
} else if (szz1 != "" && Sbin.equals("0")) { // 值为空时不能输入零
szz1 = szz1 + "0";
} else if (Sbin.equals("+") || Sbin.equals("-") || Sbin.equals("*") || Sbin.equals("/")) { // 判断输入是否运算符
if (fuhao.equals("")) { // 输入运算符时,运算符字符串为空则将输入的运算符赋值给运算符字符串,将字符串1的值赋值给字符串2,并清空字符串1,
szz2 = szz1;
szz1 = "";
fuhao = Sbin;
} else if (fuhao.equals("+") || fuhao.equals("-") || fuhao.equals("*") || fuhao.equals("/")) { // 判断输入运算符时运算符字符串不为空
if (szz1.equals("")) { // 判断字符串1为空,将新输入运算符替换原运算符字符串字符
fuhao = Sbin;
} else if (szz2.equals("")) { // 字符串1不为空,字符串2为空,将字符串2值作为0进行运算
a = 0;
b = Integer.parseInt(szz1);
szz1 = "";
if (fuhao.equals("+")) {
szz2 = (a + b) + "";
} else if (fuhao.equals("-")) {
szz2 = (a - b) + "";
} else if (fuhao.equals("*")) {
szz2 = (a * b) + "";
} else if (fuhao.equals("/")) {
szz2 = (a / b) + "";
}
a=0;
b=0;
fuhao = Sbin;
} else { // 字符串1,2不为空,运算符字符串有字符,将原式运算后值存入字符串2,将新输入运算符存入运算符字符串,
a = Integer.parseInt(szz2);
b = Integer.parseInt(szz1);
szz1 = "";
if (fuhao.equals("+")) {
szz2 = (a + b) + "";
} else if (fuhao.equals("-")) {
szz2 = (a - b) + "";
} else if (fuhao.equals("*")) {
szz2 = (a * b) + "";
} else if (fuhao.equals("/")) {
szz2 = (a / b) + "";
}
a=0;
b=0;
fuhao = Sbin;
}
}
} else if (Sbin.equals("=")) { // =按钮被点击监控,
if (fuhao.equals("")) { // =被点击时判断有没有运算符号被存入;有运算符号根据输入的运算符号进行计算
} else if (fuhao.equals("+") || fuhao.equals("-") || fuhao.equals("*") || fuhao.equals("/")) {
if (szz1.equals("")) { // 字符串1没有值时,将字符串2值赋值给字符串1值输出
szz1 = szz2;
szz2 = "";
fuhao = "";
} else if (szz2.equals("")) { // 字符串2为空,将字符串2值作为0进行运算
a = 0;
b = Integer.parseInt(szz1);
szz2 = "";
if (fuhao.equals("+")) { // 根据输入的运算符号进行计算
szz1 = (a + b) + "";
} else if (fuhao.equals("-")) {
szz1 = (a - b) + "";
} else if (fuhao.equals("*")) {
szz1 = (a * b) + "";
} else if (fuhao.equals("/")) {
szz1 = (a / b) + "";
}
a=0;
b=0;
fuhao="";
} else {
a = Integer.parseInt(szz2);
b = Integer.parseInt(szz1);
szz2 = "";
if (fuhao.equals("+")) { // 根据输入的运算符号进行计算
szz1 = (a + b) + "";
} else if (fuhao.equals("-")) {
szz1 = (a - b) + "";
} else if (fuhao.equals("*")) {
szz1 = (a * b) + "";
} else if (fuhao.equals("/")) {
szz1 = (a / b) + "";
}
a=0;
b=0;
fuhao="";
}
}
} else if (Sbin.equals("C")) { // C按钮监控,清空所有内容
szz1 = "";
szz2 = "";
fuhao = "";
}
jtField.setText(szz1);
}
}
public static void main(String[] args) {
new Calculator();
}
}
以上是关于Java 简易计算器代码(只能整数的简易运算)的主要内容,如果未能解决你的问题,请参考以下文章