用Java编写一个简单的计算器程序,要求有菜单,能进行简单的加减乘除运算。要求: 1、 完成计算器的界面设计; 2、 运用事件处理机制实现计算器的各个功能
时间: 2024-05-06 10:18:06 浏览: 114
以下是一个简单的Java计算器程序的代码示例,包括基本的加减乘除运算和菜单功能:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField num1, num2, result;
private JButton add, subtract, multiply, divide;
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem exit;
public Calculator() {
setLayout(new GridLayout(4, 2, 5, 5));
num1 = new JTextField(10);
num2 = new JTextField(10);
result = new JTextField(10);
result.setEditable(false);
add = new JButton("+");
subtract = new JButton("-");
multiply = new JButton("*");
divide = new JButton("/");
add.addActionListener(this);
subtract.addActionListener(this);
multiply.addActionListener(this);
divide.addActionListener(this);
add(new JLabel("Number 1:"));
add(num1);
add(new JLabel("Number 2:"));
add(num2);
add(new JLabel("Result:"));
add(result);
add(add);
add(subtract);
add(multiply);
add(divide);
menuBar = new JMenuBar();
menu = new JMenu("File");
exit = new JMenuItem("Exit");
exit.addActionListener(this);
menu.add(exit);
menuBar.add(menu);
setJMenuBar(menuBar);
setTitle("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == add) {
double n1 = Double.parseDouble(num1.getText());
double n2 = Double.parseDouble(num2.getText());
double res = n1 + n2;
result.setText(String.valueOf(res));
} else if (e.getSource() == subtract) {
double n1 = Double.parseDouble(num1.getText());
double n2 = Double.parseDouble(num2.getText());
double res = n1 - n2;
result.setText(String.valueOf(res));
} else if (e.getSource() == multiply) {
double n1 = Double.parseDouble(num1.getText());
double n2 = Double.parseDouble(num2.getText());
double res = n1 * n2;
result.setText(String.valueOf(res));
} else if (e.getSource() == divide) {
double n1 = Double.parseDouble(num1.getText());
double n2 = Double.parseDouble(num2.getText());
double res = n1 / n2;
result.setText(String.valueOf(res));
} else if (e.getSource() == exit) {
System.exit(0);
}
}
public static void main(String[] args) {
new Calculator();
}
}
```
在这个程序中,我们使用了JFrame和JButton等Swing组件来构建计算器的界面。菜单功能通过JMenuBar,JMenu和JMenuItem实现。在事件处理中,我们使用了getSource()方法来判断哪个按钮被按下,并进行相应的计算或退出操作。需要注意的是,我们在进行除法运算时需要考虑输入的数值是否为0,这里没有进行异常处理,需要自行添加。
此外,我们还可以使用更加复杂的布局管理器、添加更多的运算符和功能等来完善这个计算器程序。
阅读全文