您的位置:首頁技術文章
文章詳情頁

教你用Java Swing實現自助取款機系統

瀏覽:101日期:2022-08-10 17:54:54
一、系統介紹

系統功能

1.登錄系統 2.查詢余額 3.取款 4.存款 5.轉賬 6.修改密碼 7.退出系統

JDK版本:1.8存儲數據形式:TXT存儲數據

二、系統展示

1.登錄頁

教你用Java Swing實現自助取款機系統

2.主頁

教你用Java Swing實現自助取款機系統

3.取款

教你用Java Swing實現自助取款機系統

4.存款

教你用Java Swing實現自助取款機系統

5.轉賬

教你用Java Swing實現自助取款機系統

6.修改密碼

教你用Java Swing實現自助取款機系統

三、部分代碼

LoginJFrame.java

package atmJFrame.myJFrame;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;//登錄界面繼承MyJFramepublic class LoginJFrame extends MyJFrame {public LoginJFrame() {super('歡迎使用ATM機');// 設置窗體可關閉setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 設置組件init();// 界面可視化setVisible(true);}// 初始化界面private void init() {// 創建面板對象,并定義為空布局JPanel jp = new JPanel(null);// 添加標簽JLabel jl1 = new JLabel('賬號:');JLabel jl2 = new JLabel('密碼:');// 設置標簽字體jl1.setFont(FONT_SIZE_20);jl2.setFont(FONT_SIZE_20);// 設置標簽在面板中的位置jl1.setBounds(100, 100, 70, 70);jl2.setBounds(100, 250, 70, 70);// 添加文本框JTextField jtf = new JTextField(20);// 添加密碼文本框JPasswordField jpf = new JPasswordField(20);// 設置文本框位置jtf.setBounds(200, 115, 200, 40);jpf.setBounds(200, 265, 200, 40);// 添加按鈕JButton jb = new JButton('登錄');// 設置按鈕文字大小jb.setFont(FONT_SIZE_20);// 設置按鈕位置及大小jb.setBounds(250, 400, 100, 50);// 設置面板背景顏色jp.setBackground(Color.YELLOW);// 內部類進行事件處理jb.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 獲取輸入的賬號和密碼String userName = jtf.getText();String userPassword = new String(jpf.getPassword());// 驗證是否正確boolean aBoolean = atm.login(userName, userPassword);if (aBoolean) {// 登錄成功dispose();// 關閉登錄界面// 打開功能界面new WorkingJFrame();} elseshowMessageDialog('賬號或密碼錯誤');// 調用父類彈窗方法}});// 添加組件jp.add(jl1);jp.add(jtf);jp.add(jl2);jp.add(jpf);jp.add(jb);// 窗體添加面板add(jp);}public static void main(String[] args) {new LoginJFrame();// 先創建登錄界面}}

CentreJFrame.java

package atmJFrame.myJFrame;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.regex.Matcher;import java.util.regex.Pattern;//中間窗口,存錢、取錢、轉賬、修改密碼界面的父類public class CentreJFrame extends MyJFrame {// 空布局面板,自己設置組件位置及大小protected JPanel jp = new JPanel(null);// 輸入金額標簽protected JLabel jl = new JLabel('請輸入金額:');// 輸入金額文件框protected JTextField jtf = new JTextField(20);// 確認、取消按鈕protected JButton jb1 = new JButton('確認');protected JButton jb2 = new JButton('取消');// 轉賬時轉賬賬號標簽protected JLabel jLabel = new JLabel('請輸入轉賬賬號:');// 轉賬時轉賬賬號文本框protected JTextField jTextField = new JTextField(20);// 修改密碼時新密碼標簽protected JLabel jLabelCP = new JLabel('請輸入新密碼(只能為數字):');// 修改密碼時新密碼文本框protected JTextField jTextFieldCP = new JTextField(20);// 提醒用戶輸入金額為100的倍數private JLabel jle = new JLabel('( 提示:只能輸入100的倍數 )');public CentreJFrame(String str) {super(str);// 判斷要進行的操作if (str.equals('轉賬'))init1();else if (str.equals('修改密碼'))init2();elseinit();one();// 最后調用共有}// 取錢和取錢特有組件private void init() {// 輸入金額標簽,設置字體,位置及大小jl.setFont(FONT_SIZE_25);jl.setBounds(100, 100, 200, 100);// 輸入金額文本框jtf.setBounds(300, 250, 200, 50);// 添加輸入金額標簽和輸入金額文本框jp.add(jl);jp.add(jtf);setJLE();}// 轉賬特有組件private void init1() {init();// 輸入賬戶標簽jLabel.setFont(FONT_SIZE_25);jLabel.setBounds(100, 10, 200, 40);// 輸入賬戶文本jTextField.setBounds(300, 80, 200, 50);// 添加輸入賬戶標簽和輸入賬戶文本jp.add(jLabel);jp.add(jTextField);}// 修改密碼特有組件private void init2() {// 輸入新密碼標簽jLabelCP.setFont(FONT_SIZE_25);jLabelCP.setBounds(50, 100, 400, 70);// 輸入新密碼文本框jTextFieldCP.setBounds(300, 215, 200, 40);// 添加輸入新密碼標簽和輸入新密碼文本框jp.add(jLabelCP);jp.add(jTextFieldCP);}// 共有組件及操作private void one() {// 按鈕設置jb1.setFont(FONT_SIZE_20);jb2.setFont(FONT_SIZE_20);jb1.setBounds(300, 350, 100, 50);jb2.setBounds(450, 350, 100, 50);jp.add(jb1);jp.add(jb2);jp.setBackground(Color.GREEN);jb1.addActionListener(listener);jb2.addActionListener(listener);// 添加到窗體add(jp);setVisible(true);}// 設置提示private void setJLE() {jle.setFont(FONT_SIZE_10);jle.setBounds(100, 180, 300, 50);jp.add(jle);}// 創建監聽器private ActionListener listener = new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// 按鈕被點擊后String actionCommand = e.getActionCommand();// 獲取按鈕上的字switch (actionCommand) {case '確認':change();break;case '取消':new WorkingJFrame();// 創建功能界面dispose();// 關閉此界面break;}}};// 點擊確認按鈕執行的操作,子類重寫覆蓋實現各自功能protected void change() {}// 正則表達式判斷輸入是否為數字protected boolean isNumber(String str) {Pattern pattern = Pattern.compile('[0-9]*');Matcher isNum = pattern.matcher(str);if (!isNum.matches())return false;return true;}}

CunMoneyJFrame.java

package atmJFrame.myJFrame;//存錢界面public class CunMoneyJFrame extends CentreJFrame {public CunMoneyJFrame() {super('存錢');}protected void change() {String s = jtf.getText();if (isNumber(s)) {Double money = Double.parseDouble(s);boolean b = atm.saveMoney(money);if (b)showMessageDialog('您的錢錢已存入n您的賬戶余額為:' + atm.getMoney1());elseshowMessageDialog('您輸入有誤');} elseshowMessageDialog('您輸入有誤');jtf.setText('');}}

GiveMoneyJFrame.java

package atmJFrame.myJFrame;//轉賬界面public class GiveMoneyJFrame extends CentreJFrame {public GiveMoneyJFrame() {super('轉賬');}protected void change() {String s = jTextField.getText();boolean b = atm.anotherUser(s);if (b) {// 獲取輸入金額String s1 = jtf.getText();if (isNumber(s1)) {// 如果輸入是數字Double money = Double.parseDouble(s1);atm.giveMoney(money);showMessageDialog('錢已轉入n您的賬戶余額為:' + atm.getMoney1());} elseshowMessageDialog('您輸入有誤');} elseshowMessageDialog('您輸入有誤');new WorkingJFrame();// 創建功能界面dispose();// 關閉此界面}}

QuMoneyJFrame.java

package atmJFrame.myJFrame;//取錢界面public class QuMoneyJFrame extends CentreJFrame {public QuMoneyJFrame() {super('取錢');}protected void change() {String s = jtf.getText();if (isNumber(s)) {Double money = Double.parseDouble(s);boolean b = atm.quMoney(money);if (b) {showMessageDialog('請收好您的錢n您的賬戶余額為:' + atm.getMoney1());} elseshowMessageDialog('您輸入有誤');} elseshowMessageDialog('您輸入有誤');jtf.setText('');}}

到此這篇關于教你用Java Swing實現自助取款機系統的文章就介紹到這了,更多相關Java Swing自助取款機內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Java
相關文章:
国产综合久久一区二区三区