在JAVA中运用GUI模拟ATM自动提款机,写出代码并分析过程
时间: 2024-02-22 14:59:54 浏览: 74
以下是一个使用 Java Swing 模拟 ATM 自动提款机的简单代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class ATM extends JFrame implements ActionListener {
private JLabel balanceLabel, withdrawLabel;
private JTextField balanceField, withdrawField;
private JButton withdrawButton;
public ATM() {
setTitle("ATM");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new GridLayout(3, 2));
// 创建标签、输入框、按钮
balanceLabel = new JLabel("余额:");
add(balanceLabel);
balanceField = new JTextField();
add(balanceField);
withdrawLabel = new JLabel("取款金额:");
add(withdrawLabel);
withdrawField = new JTextField();
add(withdrawField);
withdrawButton = new JButton("取款");
withdrawButton.addActionListener(this);
add(withdrawButton);
pack();
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// 获取余额和取款金额
double balance = Double.parseDouble(balanceField.getText());
double withdrawAmount = Double.parseDouble(withdrawField.getText());
// 判断余额是否充足
if (balance >= withdrawAmount) {
balance -= withdrawAmount;
balanceField.setText(Double.toString(balance));
JOptionPane.showMessageDialog(this, "取款成功!", "成功", JOptionPane.INFORMATION_MESSAGE);
} else {
JOptionPane.showMessageDialog(this, "余额不足!", "错误", JOptionPane.ERROR_MESSAGE);
}
}
public static void main(String[] args) {
ATM atm = new ATM();
}
}
```
这个 Java Swing 程序与 Python 版本类似,包含一个余额标签、一个余额输入框、一个取款金额标签、一个取款金额输入框和一个取款按钮。当用户点击取款按钮时,程序会检查余额是否充足,如果充足则从余额中扣除取款金额,并更新余额输入框的显示。如果余额不足,则弹出错误消息框。
不同之处在于 Java Swing 中需要手动添加事件监听器,而 Python 的 tkinter 库则会自动管理事件。此外,Java Swing 中使用了 JOptionPane 来显示消息框,而 Python 使用了 tkinter 的 messagebox 模块。
阅读全文