使用Java中的GUI编写一个ATM
时间: 2023-12-10 09:37:20 浏览: 32
好的,下面是一个简单的Java GUI ATM示例程序。
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ATM extends JFrame implements ActionListener {
private JTextField userField, balanceField;
private JPasswordField passField;
private JButton loginButton, depositButton, withdrawButton;
private static final String PASSWORD = "1234";
private int balance = 1000;
public ATM() {
super("ATM");
// 创建用户输入框
JLabel userLabel = new JLabel("User:");
userField = new JTextField(10);
JPanel userPanel = new JPanel(new FlowLayout());
userPanel.add(userLabel);
userPanel.add(userField);
// 创建密码输入框
JLabel passLabel = new JLabel("Password:");
passField = new JPasswordField(10);
JPanel passPanel = new JPanel(new FlowLayout());
passPanel.add(passLabel);
passPanel.add(passField);
// 创建账户余额显示框
JLabel balanceLabel = new JLabel("Balance:");
balanceField = new JTextField(10);
balanceField.setEditable(false);
balanceField.setText("" + balance);
JPanel balancePanel = new JPanel(new FlowLayout());
balancePanel.add(balanceLabel);
balancePanel.add(balanceField);
// 创建登录按钮
loginButton = new JButton("Login");
loginButton.addActionListener(this);
// 创建存款按钮
depositButton = new JButton("Deposit");
depositButton.addActionListener(this);
// 创建取款按钮
withdrawButton = new JButton("Withdraw");
withdrawButton.addActionListener(this);
// 创建面板,并添加所有组件
JPanel panel = new JPanel(new GridLayout(5, 1));
panel.add(userPanel);
panel.add(passPanel);
panel.add(balancePanel);
panel.add(loginButton);
panel.add(depositButton);
panel.add(withdrawButton);
// 将面板添加到框架中
this.add(panel);
// 设置框架大小、位置和关闭方式
this.setSize(300, 200);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == loginButton) {
String user = userField.getText();
String pass = new String(passField.getPassword());
if (user.equals("") || pass.equals("")) {
JOptionPane.showMessageDialog(this, "Please enter username and password.");
} else if (pass.equals(PASSWORD)) {
JOptionPane.showMessageDialog(this, "Login successful.");
depositButton.setEnabled(true);
withdrawButton.setEnabled(true);
} else {
JOptionPane.showMessageDialog(this, "Incorrect password.");
}
} else if (e.getSource() == depositButton) {
String amountStr = JOptionPane.showInputDialog(this, "Enter deposit amount:");
if (amountStr != null && !amountStr.equals("")) {
int amount = Integer.parseInt(amountStr);
balance += amount;
balanceField.setText("" + balance);
JOptionPane.showMessageDialog(this, "Deposit successful.");
}
} else if (e.getSource() == withdrawButton) {
String amountStr = JOptionPane.showInputDialog(this, "Enter withdraw amount:");
if (amountStr != null && !amountStr.equals("")) {
int amount = Integer.parseInt(amountStr);
if (amount > balance) {
JOptionPane.showMessageDialog(this, "Insufficient balance.");
} else {
balance -= amount;
balanceField.setText("" + balance);
JOptionPane.showMessageDialog(this, "Withdraw successful.");
}
}
}
}
public static void main(String[] args) {
ATM atm = new ATM();
atm.setVisible(true);
}
}
```
这个程序使用了Java Swing来创建GUI界面,包括文本框、标签、按钮等。它模拟了一个简单的ATM系统,用户可以输入用户名和密码登录,然后进行存款或取款操作。在存款或取款时,程序会弹出对话框让用户输入金额,并更新账户余额。