用Java编程:计算器,使用恰当的组件和容器,加完成软件界面设计。
时间: 2024-03-06 16:48:09 浏览: 17
好的,让我来为您提供一个Java计算器的示例代码。
首先,我们需要使用Java Swing框架来创建计算器的界面。以下是一个简单的界面设计:
```java
import javax.swing.*;
import java.awt.*;
public class CalculatorUI extends JFrame {
private JTextField resultField;
public CalculatorUI() {
setTitle("Java Calculator");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(250, 300);
setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(5, 4));
resultField = new JTextField();
resultField.setEditable(false);
panel.add(resultField);
String[] buttonLabels = {
"7", "8", "9", "/",
"4", "5", "6", "*",
"1", "2", "3", "-",
"0", ".", "=", "+"
};
for (String label : buttonLabels) {
JButton button = new JButton(label);
button.addActionListener(e -> {
String input = ((JButton) e.getSource()).getText();
calculate(input);
});
panel.add(button);
}
add(panel);
setVisible(true);
}
private void calculate(String input) {
// 实现计算逻辑
}
public static void main(String[] args) {
new CalculatorUI();
}
}
```
在上面的代码中,我们创建了一个JFrame作为我们的主窗口,并使用GridLayout布局管理器来布置计算器的各个按钮。我们使用JTextField来显示计算结果,并将其设置为不可编辑。我们还创建了一个字符串数组,其中包含计算器上的所有按钮标签。然后,我们通过循环来创建JButton对象,并将其添加到面板中。每个按钮都有一个事件处理程序,当用户单击它时,它将调用calculate方法。
现在,我们需要实现calculate方法来处理用户输入并计算结果。以下是一个简单的实现:
```java
private void calculate(String input) {
if (input.equals("=")) {
String expression = resultField.getText();
try {
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine engine = mgr.getEngineByName("JavaScript");
Object result = engine.eval(expression);
resultField.setText(result.toString());
} catch (ScriptException e) {
resultField.setText("Error");
}
} else if (input.equals("C")) {
resultField.setText("");
} else {
resultField.setText(resultField.getText() + input);
}
}
```
在上面的代码中,我们首先检查用户是否单击了“=”按钮,如果是,则获取当前文本框中的表达式,并使用Java的ScriptEngine来计算结果。如果计算成功,则将结果显示在文本框中。如果计算失败,则将文本框设置为“Error”。
如果用户单击了“C”按钮,则清空文本框。否则,我们将用户输入附加到文本框中。
这就是一个简单的Java计算器的实现。希望能对您有所帮助!