Skip to content

Modern Java Multi-Client Chat Application with Swing GUI, Rounded Chat Bubbles, Real-Time Messaging, User List Panel, and Unique Colors per User. Learn Java Networking, Sockets, and Multi-Threaded Programming with this professional chat app.

Notifications You must be signed in to change notification settings

ZannatulRaian/modern-java-chat-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 

Repository files navigation

Modern Java Multi-Client Chat Application

Java

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

Features

  • 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

Screenshots & Demo

Chat Window Screenshot 2025-12-18 194711 Two-sided Messaging Screenshot 2025-12-18 194723 User List Panel & Option Screenshot 2025-12-18 194746


Getting Started

Prerequisites

  • Java JDK 8 or higher
  • PowerShell / Terminal
  • Optional: IDE like VSCode, IntelliJ, or Eclipse

Installation

  1. Clone this repository:
git clone https://github.com/ZannatulRaian/modern-java-chat-app.git
cd modern-java-chat-app

Compile Java files:

javac ChatServer.java
javac ChatClient.java
Start the server:
java ChatServer

Start clients in separate terminals:

java ChatClient
Enter unique usernames and chat!

Optional: Auto-launch with PowerShell

.\runChatApp.ps1

This script launches the server and multiple clients automatically.


How It Works

  • 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.

Tech Stack

  • Language: Java
  • Networking: TCP sockets
  • GUI: Swing
  • Threading: Multi-threaded client handling

Future Improvements

  • Private messaging between users
  • File sharing in chat
  • Persistent message history
  • Customizable themes
  • Emoji support
  • Message encryption

License

This project is licensed under the MIT License.


About

Modern Java Multi-Client Chat Application with Swing GUI, Rounded Chat Bubbles, Real-Time Messaging, User List Panel, and Unique Colors per User. Learn Java Networking, Sockets, and Multi-Threaded Programming with this professional chat app.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages