用Java编写一个计算机程序,要求使用AWT,并且运行程序的时候会弹出窗口,且仅有加减乘除等于号的键,数字由人输入
时间: 2024-03-01 13:52:17 浏览: 26
以下是一个简单的Java计算器程序,使用AWT创建GUI界面,只有加减乘除等于号的按钮,数字由用户输入:
```java
import java.awt.*;
import java.awt.event.*;
public class Calculator extends Frame implements ActionListener {
private TextField display;
private double operand1, operand2;
private String operator;
private boolean newNumber = true;
public Calculator() {
setTitle("Java Calculator");
setLayout(new BorderLayout());
// Create display
display = new TextField();
display.setEditable(false);
add(display, BorderLayout.NORTH);
// Create buttons
Panel buttonPanel = new Panel(new GridLayout(4, 4));
addButton(buttonPanel, "7");
addButton(buttonPanel, "8");
addButton(buttonPanel, "9");
addButton(buttonPanel, "/");
addButton(buttonPanel, "4");
addButton(buttonPanel, "5");
addButton(buttonPanel, "6");
addButton(buttonPanel, "*");
addButton(buttonPanel, "1");
addButton(buttonPanel, "2");
addButton(buttonPanel, "3");
addButton(buttonPanel, "-");
addButton(buttonPanel, "0");
addButton(buttonPanel, ".");
addButton(buttonPanel, "=");
addButton(buttonPanel, "+");
add(buttonPanel, BorderLayout.CENTER);
// Add event listeners
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
dispose();
}
});
pack();
setVisible(true);
}
public static void main(String[] args) {
new Calculator();
}
// Add a button to the specified panel with the specified label
private void addButton(Panel panel, String label) {
Button button = new Button(label);
button.addActionListener(this);
panel.add(button);
}
// Handle button clicks
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
if (label.equals("C")) {
display.setText("");
newNumber = true;
} else if (label.equals("=")) {
if (operator == null) {
operand2 = Double.parseDouble(display.getText());
} else {
operand2 = performOperation(operand1, Double.parseDouble(display.getText()), operator);
}
display.setText(Double.toString(operand2));
operator = null;
newNumber = true;
} else if (label.matches("[0-9]|\\.")) {
if (newNumber) {
display.setText(label);
newNumber = false;
} else {
display.setText(display.getText() + label);
}
} else {
if (operator != null) {
operand2 = Double.parseDouble(display.getText());
operand1 = performOperation(operand1, operand2, operator);
display.setText(Double.toString(operand1));
} else {
operand1 = Double.parseDouble(display.getText());
}
operator = label;
newNumber = true;
}
}
// Perform the specified operation on the two operands
private double performOperation(double op1, double op2, String oper) {
if (oper.equals("+")) {
return op1 + op2;
} else if (oper.equals("-")) {
return op1 - op2;
} else if (oper.equals("*")) {
return op1 * op2;
} else if (oper.equals("/")) {
return op1 / op2;
} else {
return op2;
}
}
}
```
该程序创建一个带有数字和运算符按钮的GUI界面,并在用户单击按钮时执行相应的计算。运行程序时,会弹出一个窗口。