java用swing组件编写一个计算机程序,功能包括加、减、乘、除、方、百分数、倒数,按键一共有五行,第一行分别是退格和归零功能键,第二行分别是7、8、9数字键还有除和开方运算键,第三行分别是4、5、6数字键还有乘百分数运算键,第四行分别是1、2、3数字键还有减和倒数运算键,第五行分别是0数字键、小数点键还有加和等于运算键
时间: 2023-08-24 07:04:03 浏览: 51
好的,我可以帮你实现这个计算器程序。以下是示例代码:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Calculator extends JFrame implements ActionListener {
private JTextField display;
private JButton[] buttons;
private double num1, num2, result;
private String operator;
public Calculator() {
super("Calculator");
// 创建显示屏
display = new JTextField(20);
display.setEditable(false);
// 创建按键
buttons = new JButton[20];
buttons[0] = new JButton("Backspace");
buttons[1] = new JButton("C");
buttons[2] = new JButton("/");
buttons[3] = new JButton("sqrt");
buttons[4] = new JButton("7");
buttons[5] = new JButton("8");
buttons[6] = new JButton("9");
buttons[7] = new JButton("*");
buttons[8] = new JButton("%");
buttons[9] = new JButton("4");
buttons[10] = new JButton("5");
buttons[11] = new JButton("6");
buttons[12] = new JButton("-");
buttons[13] = new JButton("1/x");
buttons[14] = new JButton("1");
buttons[15] = new JButton("2");
buttons[16] = new JButton("3");
buttons[17] = new JButton("+");
buttons[18] = new JButton("0");
buttons[19] = new JButton(".");
for (int i = 0; i < 20; i++) {
buttons[i].addActionListener(this);
}
// 创建按键面板
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(5, 4));
buttonPanel.add(buttons[0]);
buttonPanel.add(buttons[1]);
buttonPanel.add(buttons[2]);
buttonPanel.add(buttons[3]);
buttonPanel.add(buttons[4]);
buttonPanel.add(buttons[5]);
buttonPanel.add(buttons[6]);
buttonPanel.add(buttons[7]);
buttonPanel.add(buttons[8]);
buttonPanel.add(buttons[9]);
buttonPanel.add(buttons[10]);
buttonPanel.add(buttons[11]);
buttonPanel.add(buttons[12]);
buttonPanel.add(buttons[13]);
buttonPanel.add(buttons[14]);
buttonPanel.add(buttons[15]);
buttonPanel.add(buttons[16]);
buttonPanel.add(buttons[17]);
buttonPanel.add(buttons[18]);
buttonPanel.add(buttons[19]);
// 添加组件到面板
add(display, BorderLayout.NORTH);
add(buttonPanel, BorderLayout.CENTER);
// 设置窗口属性
setSize(300, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
String s = e.getActionCommand();
if (s.equals("Backspace")) {
String text = display.getText();
if (text.length() > 0) {
text = text.substring(0, text.length() - 1);
display.setText(text);
}
} else if (s.equals("C")) {
display.setText("");
num1 = 0;
num2 = 0;
result = 0;
operator = "";
} else if (s.equals("+") || s.equals("-") || s.equals("*") || s.equals("/") || s.equals("%")) {
num1 = Double.parseDouble(display.getText());
operator = s;
display.setText("");
} else if (s.equals("sqrt")) {
num1 = Double.parseDouble(display.getText());
result = Math.sqrt(num1);
display.setText("" + result);
} else if (s.equals("1/x")) {
num1 = Double.parseDouble(display.getText());
result = 1.0 / num1;
display.setText("" + result);
} else if (s.equals("=")) {
num2 = Double.parseDouble(display.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;
} else if (operator.equals("%")) {
result = num1 % num2;
}
display.setText("" + result);
} else {
display.setText(display.getText() + s);
}
}
public static void main(String[] args) {
new Calculator();
}
}
```
你可以将以上代码复制到一个名为 Calculator.java 的文件中,并在命令行中编译并运行它。注意:该程序需要 Java Swing 库的支持。