A real-time, multi-client chat application built in Java featuring:
- Rounded chat bubbles like modern messaging apps
- User list panel displaying all connected users
- Unique colors for each user
- Two-sided real-time chat: messages appear for all clients, including the sender
- Notifications for user join/leave
- GUI built with Swing
- Two-sided Chat: All clients see every message
- Rounded Chat Bubbles: Color-coded messages per user
- User List Panel: Shows online users dynamically
- Notifications: Join/Leave messages
- Send via Enter Key or Send Button
- Menu Options: Clear Chat / Exit
- Multi-client support with TCP sockets
Chat Window
Two-sided Messaging
User List Panel & Option

- Java JDK 8 or higher
- PowerShell / Terminal
- Optional: IDE like VSCode, IntelliJ, or Eclipse
- Clone this repository:
git clone https://github.com/ZannatulRaian/modern-java-chat-app.git
cd modern-java-chat-appCompile Java files:
javac ChatServer.java
javac ChatClient.java
Start the server:java ChatServerStart clients in separate terminals:
java ChatClient
Enter unique usernames and chat!Optional: Auto-launch with PowerShell
.\runChatApp.ps1This script launches the server and multiple clients automatically.
- Server: Accepts connections, broadcasts messages, updates user list.
- Client: Connects to server, sends messages, receives broadcasts.
- GUI: Displays messages as colored, rounded bubbles; updates user list dynamically.
- Color Mapping: Each user has a unique color for easy identification.
- Language: Java
- Networking: TCP sockets
- GUI: Swing
- Threading: Multi-threaded client handling
- Private messaging between users
- File sharing in chat
- Persistent message history
- Customizable themes
- Emoji support
- Message encryption
This project is licensed under the MIT License.