JAVA Swing ATM模拟

本文介绍了使用JAVA Swing创建的一个ATM模拟取款程序,包括登录界面、实时时间显示、存款、取款和查询功能。通过Login、Menu、Saving、WithDrawal、Select和Account类实现各功能,并强调代码中包含详细注释以帮助理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

小编最近在复习java基础,心血来潮学了下Swing(以前没学过),写了一个模拟ATM取款程序。
ATM模拟取款程序:
登录界面:
在这里插入图片描述
图片中小编还加入了一个 时间实时更新功能。
Login类(登录)

package swpu.edu;

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
*	功能描述:   登录界面
*	@param:
*	@return:
*	@auther:
*	@date:
*/

public class Login extends JFrame implements ActionListener{
    private JPanel p1,p2,p3,p4; //界面元素对象
    private JTextField username,userpassword;//接收界面账号、密码
    private JButton login;//登录按钮
    private Timer timer;//时间容器
    private JLabel timelable;

    public Login(){
        //主界面
        this.setTitle("ATM模拟");
        this.setSize(500,300);
        this.setLocation(500,200);//界面显示位置
        this.setLayout(null);
        this.setResizable(false);//界面不可缩放
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭界面,程序结束

        //界面元素1:标题
        p1=new JPanel();
        p1.setBounds(140,30,200,30);//界面位置、大小
        p1.setBackground(new Color(55,100,97));
        this.add(p1);
        p1.add(new JLabel("万氏银行"));

        //界面元素2:账号
        p2=new JPanel();
        p2.setBounds(80,80,300,30);
        this.add(p2);
        p2.add(new JLabel("账号: "));
        username=new JTextField(20);
        p2.add(username);

        //界面元素3:密码
        p3=new JPanel();
        p3.setBounds(80,120,300,30);
        this.add(p3);
        p3.add(new JLabel("密码: "));
        userpassword=new JPasswordField(20);
        p3.add(userpassword);

        //界面元素4:登录按钮
        login=new JButton("登录");
        login.addActionListener(this);//触发监听事件,验证用户信息
        p4=new JPanel();
        p4.setBounds(90,160,300,30);
        this.add(p4);
        p4.add(login);

        //时间显示
        timelable=new JLabel("");
        timelable.setBounds(300,220,200,30);
        timer=new Timer(1000, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                timelable.setText(new SimpleDateFormat("yyyy年MM月dd日:hh:mm:ss")
                        .format(new Date()));

            }
        });
        timer.start();
        this.add(timelable);
        
        this.setVisible(true);//界面可见
    }
    //测试
    public static void main(String[] args) {
        new Login();
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        new Account();//调用Account构造器,读取文件信息
        System.out.println(username.getText().toString());
        System.out.println(Account.userid);
           if(username.getText().toString().equals(Account.userid)) {
               if (userpassword.getText().toString().equals(Account.userpassword)) {
                   this.dispose();//释放当前界面资源,关闭当前界面
                   new Menu();
               }
               else if(userpassword.getText().toString().equals("")){
                   JOptionPane.showMessageDialog(this,"账户或密码不能为空");
               }else{
                   JOptionPane.showMessageDialog(this,"密码错误");
               }
           }else if(username.getText().toString().equals("")){
                JOptionPane.showMessageDialog(this,"账户或密码不能为空");
           }else{
               JOptionPane.showMessageDialog(this,"账户错误");
       }
    }



}

功能栏

java语言编写的简单模拟ATM机功能案例,有美观的UI界面,和比较完善的功能模块,业务分层,编码格式规范。可供初学者参考。 另在db文件夹中附带两种数据库(mysql、sqlserver)表结构。 bin cn bank action CheckBalance.class LoginAction.class ModifyPsw.class TransferAccountsAction.class UpdateBalance.class domin CardInfo.class start Login.class UI CheckBalanceUI$1.class CheckBalanceUI$2.class CheckBalanceUI$3.class CheckBalanceUI.class FailedLoginUI$1.class FailedLoginUI$cxjr.class FailedLoginUI.class LoginUI$1.class LoginUI$2.class LoginUI$Monitor.class LoginUI.class ModifyPswUI.class ServiceUI$1.class ServiceUI$2.class ServiceUI$Monitor.class ServiceUI.class SuccessModifyPswUI$1.class SuccessModifyPswUI$2.class SuccessModifyPswUI.class SuccessTransferAccountsUI$1.class SuccessTransferAccountsUI$2.class SuccessTransferAccountsUI.class SuccessWithdrawingMoneyUI$1.class SuccessWithdrawingMoneyUI$2.class SuccessWithdrawingMoneyUI.class TransferAccountsUI$1.class TransferAccountsUI.class WithdrawingMoneyUI$1.class WithdrawingMoneyUI$2.class WithdrawingMoneyUI$3.class WithdrawingMoneyUI$Kuanx.class WithdrawingMoneyUI.class WithdrawingMoneyUI4OtherFiguer.class utils DbManager.class mysql-connector-java-5.1.18-bin.jar db mysql_bank.sql sqlserver_bank.sql lib mysql-connector-java-5.1.18-bin.jar MANIFEST.MF pics a11.jpg a12.jpg a13.jpg a16.jpg a18.jpg a19.jpg jgyh.jpg pic.jpg src cn bank action CheckBalance.java LoginAction.java ModifyPsw.java TransferAccountsAction.java UpdateBalance.java domin CardInfo.java start Login.java UI CheckBalanceUI.java FailedLoginUI.java LoginUI.java ModifyPswUI.java ServiceUI.java SuccessModifyPswUI.java SuccessTransferAccountsUI.java SuccessWithdrawingMoneyUI.java TransferAccountsUI.java WithdrawingMoneyUI.java WithdrawingMoneyUI4OtherFiguer.java utils DbManager.java Thumbs.db .classpath .project .settings org.eclipse.jdt.core.prefs
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值