java计算器如何实现运算_java简单实现计算器

本文实例为大家分享了java简单实现计算器的具体代码,供大家参考,具体内容如下

public class Calculator {

static ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript");

private static void CreateFrame() {

JFrame f = new JFrame("计算器");

f.setSize(600, 500);

f.setVisible(true);

f.setLayout(new BorderLayout());

f.setLayout(new GridLayout(6, 3));

f.setLocation(300, 150);

JTextArea text = new JTextArea(20, 0);

f.add(text, BorderLayout.NORTH);

JButton but1 = new JButton("CE");

f.add(but1, BorderLayout.PAGE_END);

String a[] = { "=", "7", "8", "9", "4", "5", "6", "1", "2", "3", "0", "+", "-", "*", "/", "." };

JButton btn[] = new JButton[a.length];

for (int i = 0; i < a.length; i++) {

btn[i] = new JButton(a[i]);

f.add(btn[i]);

}

// 功能实现

for (int i = 0; i < a.length; i++) {

// 如果不是等于号

if (i != 0) {

int j = i;

btn[i].addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

String s = btn[j].getText();// 获取文本框内容

text.append(s);

}

});

} else {

// 如果点击等于号

btn[i].addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

try {

// 获取文本框内容

String gongshi = text.getText();

// 计算获取的文本框中的内容

String jieguo = jse.eval(gongshi).toString();

text.setText("=");

text.setText(jieguo);

} catch (Exception t) {

text.setText("");

}

}

});

// CE按钮

but1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

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

text.setText("");

}

}

});

}

}

}

public static void main(String[] args) {

SwingUtilities.invokeLater(Calculator::CreateFrame);

}

}

效果图:

6e2e2fad6f5ce401f6f6586d123e4bca.png

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现一个简单Java 计算器,可以使用 Java Swing 来创建一个用户界面,并使用 Java 的算术运算符来执行基本的数学运算。下面是一个简单的示例代码: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame implements ActionListener { private JTextField textField; private JButton[] buttons; private String[] buttonLabels = { "7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", "0", ".", "=", "/" }; private double num1, num2, result; private String operator = ""; public Calculator() { super("Calculator"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(new BorderLayout()); textField = new JTextField(15); textField.setEditable(false); panel.add(textField, BorderLayout.NORTH); JPanel buttonPanel = new JPanel(new GridLayout(4, 4)); buttons = new JButton[16]; for (int i = 0; i < 16; i++) { buttons[i] = new JButton(buttonLabels[i]); buttons[i].addActionListener(this); buttonPanel.add(buttons[i]); } panel.add(buttonPanel, BorderLayout.CENTER); getContentPane().add(panel); pack(); setVisible(true); } public static void main(String[] args) { new Calculator(); } public void actionPerformed(ActionEvent e) { String label = e.getActionCommand(); if (label.equals("C")) { textField.setText(""); } else if (label.equals("=")) { num2 = Double.parseDouble(textField.getText()); if (operator.equals("+")) { result = num1 + num2; } else if (operator.equals("-")) { result = num1 - num2; } else if (operator.equals("*")) { result = num1 * num2; } else if (operator.equals("/")) { result = num1 / num2; } textField.setText("" + result); num1 = result; operator = ""; } else if (label.equals("+") || label.equals("-") || label.equals("*") || label.equals("/")) { num1 = Double.parseDouble(textField.getText()); operator = label; textField.setText(""); } else { textField.setText(textField.getText() + label); } } } ``` 这个计算器可以进行基本的加、减、乘、除运算。要实现连续运算,可以在等号按钮的事件处理程序中将运算结果存储到 num1 变量中,并清空操作符变量 operator,以便进行下一次运算。例如: ```java else if (label.equals("=")) { num2 = Double.parseDouble(textField.getText()); if (operator.equals("+")) { result = num1 + num2; } else if (operator.equals("-")) { result = num1 - num2; } else if (operator.equals("*")) { result = num1 * num2; } else if (operator.equals("/")) { result = num1 / num2; } textField.setText("" + result); num1 = result; operator = ""; } ``` 这样,用户就可以在计算器上进行连续的数学运算

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值