This is a Java GUI-based Online Banking System developed using Java Swing and SQLite. The project follows MVC architecture and demonstrates core Java concepts, database connectivity, multithreading, and event-driven programming.
- Java 11+
- Java Swing (GUI)
- SQLite
- JDBC
- VS Code
- User Registration
- User Login
- Deposit Money
- Withdraw Money
- Balance Inquiry
- Transaction Logging
- Background Balance Monitoring (Multithreading)
- db : Database connection and initialization
- model : Entity classes (User, Transaction)
- dao : Database operations (DAO pattern)
- controller: Business logic (Servlet-like controllers)
- ui : Java Swing GUI
- thread : Multithreading implementation
- exception : Custom exceptions
- Ensure Java 11+ is installed
- Place sqlite-jdbc.jar in project root
- Add sqlite-jdbc.jar to classpath (VS Code settings.json)
- Run Main.java
- SQLite database is auto-created as bank.db
- Tables: users, transactions
- Inheritance (BaseFrame)
- Polymorphism (BankOperations interface)
- Interfaces
- Exception Handling
A background thread monitors account balance periodically using synchronization.
This project demonstrates clean architecture, robust error handling, and full integration of GUI, database, and business logic.