Advanced Spelling Checker is a modern Java-based desktop application developed using Java Swing that helps users identify spelling mistakes and generate intelligent correction suggestions.
The application provides a user-friendly graphical interface where users can enter single words or complete sentences for spell checking. The system validates entered words against a dictionary file and identifies incorrect spellings. For incorrect words, the application generates the closest matching suggestions using the Levenshtein Distance Algorithm.
This project demonstrates concepts such as GUI development, file handling, event-driven programming, dynamic programming algorithms, and efficient data lookup using HashSet.
- Spell checking for words and sentences
- Modern Java Swing graphical user interface
- Fast dictionary lookup using HashSet
- Intelligent spelling suggestions
- Real-time word counting
- Clear input functionality
- Dark mode support
- Multi-word sentence validation
- Error highlighting through result display
| Technology | Purpose |
|---|---|
| Java | Core programming language |
| Java Swing | GUI development |
| File Handling | Reading dictionary file |
| HashSet | Fast word lookup |
| Event Handling | User interaction handling |
| Levenshtein Distance Algorithm | Suggestion generation |
| Dynamic Programming | Distance calculation optimization |
This project demonstrates the following programming concepts:
- Object-Oriented Programming
- GUI Design
- Event-Driven Programming
- Dynamic Programming
- Data Structures
- String Manipulation
- File Handling
- Algorithm Design
AdvancedSpellingChecker/
โ
โโโ AdvancedSpellingCheckerGUI.java
โโโ dictionary.txt
โโโ README.md
โโโ screenshots/
โโโ home.png
User enters text
โ
Application splits text into words
โ
Words are cleaned and normalized
โ
Each word is searched in dictionary
โ
Correct words are validated
โ
Incorrect words detected
โ
Levenshtein algorithm generates suggestions
โ
Results displayed to user
The application reads words from a dictionary file and stores them inside a HashSet.
HashSet provides:
- fast lookup
- efficient searching
- constant time complexity for search operations
When the user enters text:
- The text is split into words.
- Symbols and special characters are removed.
- Each word is converted to lowercase.
- The word is searched inside the dictionary.
- If not found, the word is marked incorrect.
- Suggestions are generated.
The application uses the Levenshtein Distance algorithm to generate spelling suggestions.
This algorithm calculates the minimum number of operations required to transform one word into another.
Operations include:
- insertion
- deletion
- substitution
scence โ science
intilligence โ intelligence
machne โ machine
The dictionary file should contain one valid word per line.
Example:
hello
world
java
computer
science
artificial
intelligence
machine
learning
application
Install JDK 8 or higher.
Verify installation:
java -version
javac -versiongit clone https://github.com/ravali6132/Spell_Checker.gitcd AdvancedSpellingCheckerjavac AdvancedSpellingCheckerGUI.javajava AdvancedSpellingCheckerGUIAllows users to enter words or sentences.
Displays:
- correct words
- incorrect words
- suggestions
- mistake count
Checks spelling and generates suggestions.
Clears input and output fields.
Switches application theme to dark mode.
Displays:
- word count
- application status
- completion messages
scence
intilligence
machne
โ scence -> Incorrect
Suggestion: science
โ intilligence -> Incorrect
Suggestion: intelligence
โ machne -> Incorrect
Suggestion: machine
Total Mistakes: 3
| Operation | Complexity |
|---|---|
| Dictionary Lookup | O(1) |
| Suggestion Search | O(n ร m) |
Where:
- n = number of dictionary words
- m = word length
Through this project, the following skills were developed:
- GUI development using Java Swing
- File handling in Java
- Event handling mechanisms
- Dynamic programming implementation
- Efficient data searching using HashSet
- String processing and validation
- User interface design
- Managing GUI layouts properly
- Implementing efficient suggestion generation
- Handling user input validation
- Optimizing word lookup performance
- Designing clean UI components
The following improvements can be added in future versions:
- Grammar checking
- Real-time spell highlighting
- Auto-correction feature
- Voice input support
- Multi-language support
- AI-based smart suggestions
- Cloud dictionary integration
- File upload support
- Paragraph correction support
- Educational software
- Text editors
- Writing assistance tools
- Learning applications
- Email validation systems
- Content writing platforms
This project demonstrates:
- strong Java fundamentals
- problem-solving skills
- algorithm implementation
- GUI development experience
- understanding of data structures
- real-world application development
Contributions are welcome.
You can improve:
- UI design
- algorithm optimization
- grammar correction
- suggestion accuracy
- performance improvements
This project is developed for educational and learning purposes.
Ravali Koppisetti
If you found this project useful, consider giving it a star on GitHub.