Back to Projects

Java Swing Presentation Editor
This project is a fully featured presentation editor developed using Java Swing, designed to mimic the functionality of PowerPoint while being built entirely from scratch. Users can create and manage multi-slide presentations, navigate slides via a thumbnail panel, and add rich content such as formatted text, images, and drawings.
Key Features:
- Multi-slide management with thumbnail navigation
- Rich text formatting capabilities
- Image handling and insertion
- Drawing tools for custom graphics
- Full-screen presentation mode with dynamic scaling
Each slide maintains its own independent state, including:
- Text boxes
- Images
- Drawings
- Background colours
- Speaker notes
All presentation data is serialized to and restored from a custom JSON format, ensuring full persistence across sessions and backward compatibility with older file formats.
The application uses an event-driven architecture with reusable draggable components, custom rendering using Graphics2D, and an MVC-like separation between UI, slide state, and presentation logic. A full-screen presentation mode scales slides dynamically to fit the display, providing a realistic slide-show experience.
This project demonstrates advanced desktop GUI development, clean object-oriented design, custom state management, and real-world editor-style functionality beyond basic coursework.
Technologies Used
JavaJava SwingJava2DJSON