使用Java中GUI的JFrame写一个简易计算机图形
时间: 2024-05-12 07:15:15 浏览: 90
好的,以下是一个简单的计算器图形界面的Java代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField field;
private JButton[] buttons;
private String[] buttonLabels = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", ".", "=", "+"
};
private double result = 0;
private String operator = "";
private boolean startNumber = true;
public Calculator() {
setTitle("Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 300);
setLocationRelativeTo(null);
setLayout(new BorderLayout());
field = new JTextField();
add(field, BorderLayout.NORTH);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(4, 4));
buttons = new JButton[buttonLabels.length];
for (int i = 0; i < buttonLabels.length; i++) {
buttons[i] = new JButton(buttonLabels[i]);
buttons[i].addActionListener(this);
panel.add(buttons[i]);
}
add(panel, BorderLayout.CENTER);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String label = e.getActionCommand();
if ("0123456789.".indexOf(label) >= 0) {
if (startNumber) {
field.setText("");
startNumber = false;
}
field.setText(field.getText() + label);
} else if ("+-*/".indexOf(label) >= 0) {
operator = label;
result = Double.parseDouble(field.getText());
startNumber = true;
} else if ("=".equals(label)) {
if (!startNumber) {
double number = Double.parseDouble(field.getText());
if ("+".equals(operator)) {
result += number;
} else if ("-".equals(operator)) {
result -= number;
} else if ("*".equals(operator)) {
result *= number;
} else if ("/".equals(operator)) {
result /= number;
}
field.setText("" + result);
startNumber = true;
}
}
}
public static void main(String[] args) {
new Calculator();
}
}
```
这个计算器图形界面包含一个文本框和 16 个按钮,分别用于输入数字和选择运算符。文本框用于显示运算结果。
当用户点击数字按钮时,程序会将数字添加到文本框中。如果当前是一个新的数字,则清空文本框。
当用户点击运算符按钮时,程序会将当前的数字保存为操作数,并将运算符保存下来。同时,将标志位设为 true,表示下一次输入的是一个新的数字。
当用户点击等于号时,程序会读取当前的数字,并执行相应的运算。最后将结果显示在文本框中,标志位设为 true。
阅读全文