A self-ordering kiosk application built in Java Swing, simulating a restaurant workflow with Waiter and Chef threads.
Customers place food orders through a graphical interface while background threads handle preparation and serving, demonstrating multithreading and thread synchronization in Java.
-
🖥️ Interactive GUI (Java Swing):
- Home screen with welcome message.
- Menu screen with food item images and colorful buttons.
- Real-time order status updates.
-
👨🍳 Multithreading Simulation:
- Waiter thread takes orders and passes them to the Chef thread.
- Chef prepares items with simulated delays (
Thread.sleep). - Waiter serves items once notified by the Chef.
-
🔄 Thread Synchronization:
- Uses
synchronized,wait(), andnotify()to coordinate waiter–chef communication. - Prevents race conditions and ensures correct order flow.
- Uses
-
🍽️ Order & Table Management:
- Orders are tied to table numbers.
- Table number automatically increments after a meal is fully served.
- Java (OOP, Threads, Swing GUI)
- Concurrency:
Thread,synchronized,wait(),notify() - GUI Components:
JFrame,JPanel,JButton,JList,JLabel,JTextArea
- Gained hands-on experience with Java multithreading (
Thread,synchronized,wait(),notify()). - Practiced Java Swing GUI design with interactive components and images.
- Strengthened understanding of thread synchronization in real-world simulations.
- Improved Object-Oriented Programming skills by structuring code into Restaurant, Waiter, Chef, and Order classes.