利用java编程:设计并实现一个类似于windows操作系统附件中自带的计算器的一款简单的计算器,要求界面美观,设计合理;带有常用的菜单并实现其功能;能完成加、减、乘、除等简单的计算,在下面写出其核心代码。
时间: 2024-05-09 14:21:59 浏览: 103
非常感谢您的提问!针对您的问题,以下是一份简单的Java计算器程序的核心代码,希望对您有所帮助:
```
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame {
private JButton addBtn, subtractBtn, multiplyBtn, divideBtn, clearBtn,
dotBtn, equalBtn;
private JTextField inputField;
private double num1, num2;
private String operator;
public Calculator() {
setTitle("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setLocationRelativeTo(null);
setResizable(false);
// 创建GUI界面
JPanel inputPanel = new JPanel(new FlowLayout(FlowLayout.CENTER));
inputField = new JTextField(20);
inputPanel.add(inputField);
JPanel buttonPanel = new JPanel(new GridLayout(4, 4, 5, 5));
addBtn = new JButton("+");
subtractBtn = new JButton("-");
multiplyBtn = new JButton("*");
divideBtn = new JButton("/");
dotBtn = new JButton(".");
equalBtn = new JButton("=");
clearBtn = new JButton("C");
clearBtn.setBackground(Color.RED);
buttonPanel.add(addBtn);
buttonPanel.add(subtractBtn);
buttonPanel.add(multiplyBtn);
buttonPanel.add(divideBtn);
buttonPanel.add(new JButton("7"));
buttonPanel.add(new JButton("8"));
buttonPanel.add(new JButton("9"));
buttonPanel.add(clearBtn);
buttonPanel.add(new JButton("4"));
buttonPanel.add(new JButton("5"));
buttonPanel.add(new JButton("6"));
buttonPanel.add(dotBtn);
buttonPanel.add(new JButton("1"));
buttonPanel.add(new JButton("2"));
buttonPanel.add(new JButton("3"));
buttonPanel.add(equalBtn);
add(inputPanel, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.CENTER);
// 添加监听器
addBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
num1 = Double.parseDouble(inputField.getText());
inputField.setText("");
operator = "+";
}
});
subtractBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
num1 = Double.parseDouble(inputField.getText());
inputField.setText("");
operator = "-";
}
});
multiplyBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
num1 = Double.parseDouble(inputField.getText());
inputField.setText("");
operator = "*";
}
});
divideBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
num1 = Double.parseDouble(inputField.getText());
inputField.setText("");
operator = "/";
}
});
equalBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
num2 = Double.parseDouble(inputField.getText());
double result = 0.0;
switch (operator) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
result = num1 / num2;
break;
}
inputField.setText(Double.toString(result));
}
});
clearBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
inputField.setText("");
}
});
dotBtn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String currentText = inputField.getText();
if (!currentText.contains(".")) {
inputField.setText(currentText + ".");
}
}
});
setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
}
```
该程序使用Java Swing库构建一个简单的计算器GUI界面,并实现加、减、乘、除等基本计算功能。其中,输入框使用JTextField组件实现,操作按钮使用JButton组件实现,界面排版使用JPanel和布局管理器实现,监听器使用ActionListener接口实现。
该程序算法比较简单,主要思路是:当用户点击加、减、乘、除等操作符按钮时,先将当前输入框中的数字存储为num1,并清空输入框;当用户点击等号按钮时,将当前输入框中的数字存储为num2,并根据操作符计算结果,显示在输入框中。其他操作按钮(如清除、小数点等)也根据用户操作修改输入框中的内容。
当然,这只是一份简单的Java计算器程序,还有很多地方可以优化和改进,比如添加键盘监听器、支持科学计数法、增强异常处理等。希望这份代码能够帮助您入门Java GUI编程,提高自己的编程能力!
阅读全文