private String firstInput = null;//记录第一次输入的数 private String symbol = null;//记录操作符 @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub String click = e.getActionCommand();//获取点击到的值 if(".0123456789".indexOf(click)!=-1) { this.input_text.setText(input_text.getText()+click);//把按钮上的值赋值到文本框里 先点的数字在后面,后点的数字在前面 this.input_text.setHorizontalAlignment(JTextField.RIGHT);//数字从右边往左显示 //JOptionPane.showMessageDialog(this, click);//把点击窗口的值显示出来显示出来 // click.matches("[\\+\\-*/]{1}") 如果是加减乘除中的一个 }else if(click.matches("[\\+\\-*/]{1}")) { symbol = click;//记录符号 firstInput = this.input_text.getText();//记录数字 this.input_text.setText("");//清空文本框内容 }else if(click.equals("=")) { Double a = Double.valueOf(firstInput);//点运算符之前的值 Double b = Double.valueOf(this.input_text.getText());//点运算符之后的值,即当前值 Double result = null; switch (symbol) { case"+":result=a+b;break; case"-":result=a-b;break; case"*":result=a*b;break; case"/": if(b!=0) { result=a/b; }break; } this.input_text.setText(result.toString()); } } }给我画出
时间: 2024-02-14 07:07:01 浏览: 85
很抱歉,我无法为你绘制图形,但我可以帮你解释这段代码的作用。这段代码是 Java 中的一个事件处理函数,当用户点击计算器界面上的按钮时,会触发该函数。函数中定义了三个变量,分别记录第一次输入的数、操作符和计算结果。当用户点击数字按钮时,该函数会将按钮上的数字添加到文本框中。当用户点击操作符(加、减、乘、除)按钮时,该函数会记录下操作符和当前文本框中的数字,并清空文本框的内容,以便用户输入下一个数字。当用户点击等于号按钮时,该函数会将之前记录的数字和当前文本框中的数字进行计算,并在文本框中显示计算结果。
该代码中使用了一个 switch 语句来根据不同的操作符进行不同的计算。注意,在除法运算中,需要判断除数是否为零,否则会出现运行时错误。
相关问题
生成一个java计算器的可视界面代码,自己输入运算数和运算符号
创建一个简单的Java GUI计算器需要使用Swing或JavaFX库。这里我会给出一个基于Swing的例子,因为它是Java的标准GUI库。请注意,这只是一个基本的示例,实际应用可能需要更复杂的错误处理和用户界面设计。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class SimpleCalculator extends JFrame {
private JTextField[] fields = new JTextField[4];
private JButton[] buttons = new JButton[10];
public SimpleCalculator() {
// 设置窗口标题和大小
setTitle("Simple Calculator");
setSize(300, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建输入框和按钮布局
JPanel panel = new JPanel();
for (int i = 0; i < 4; i++) {
fields[i] = new JTextField();
fields[i].setColumns(5);
panel.add(fields[i]);
}
int buttonIndex = 0;
for (String symbol : new String[]{"7", "8", "9", "/", "4", "5", "6", "*", "1", "2", "3", "-", "+", "="}) {
buttons[buttonIndex++] = createButton(symbol, i % 4 == 0 ? ActionListenerType.INPUT : ActionListenerType.OP);
panel.add(buttons[buttonIndex - 1]);
}
JButton clearBtn = new JButton("Clear");
clearBtn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
for (JTextField field : fields) {
field.setText("");
}
}
});
buttons[buttonIndex++] = clearBtn;
panel.add(clearBtn);
add(panel);
}
private JButton createButton(String symbol, ActionListenerType type) {
JButton button = new JButton(symbol);
button.addActionListener((ActionEvent e) -> {
switch (type) {
case INPUT:
JTextField targetField = fields[(int) e.getActionCommand().charAt(0) - '0'];
targetField.setText(targetField.getText() + symbol);
break;
case OP:
JTextField leftField = fields[(int) e.getActionCommand().charAt(0) - '0'];
JTextField rightField = fields[(int) e.getActionCommand().charAt(1) - '0'];
double leftValue = Double.parseDouble(leftField.getText());
double rightValue = Double.parseDouble(rightField.getText());
double result = 0;
switch (e.getActionCommand()) {
case "+":
result = leftValue + rightValue;
break;
case "-":
result = leftValue - rightValue;
break;
case "*":
result = leftValue * rightValue;
break;
case "/":
if (rightValue != 0)
result = leftValue / rightValue;
else
JOptionPane.showMessageDialog(null, "Error: Division by zero is not allowed.");
break;
}
leftField.setText(Double.toString(result));
break;
}
});
return button;
}
enum ActionListenerType {
INPUT,
OP
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
SimpleCalculator calculator = new SimpleCalculator();
calculator.setVisible(true);
});
}
}
```
在这个例子中,我们创建了一个包含数字、操作符和清除按钮的简单计算器界面。用户可以输入数字,点击运算符按钮执行计算,结果会显示在相应的输入字段中。当点击"="按钮时,会尝试执行运算并更新结果。
阅读全文