A modern, lightweight note-taking application built with Java Swing.
- Clean, Modern UI: Sleek interface with customizable themes including dark mode
- Note Management: Create, edit, save, and delete notes with ease
- Search Functionality: Quickly find notes using the search feature
- Keyboard Shortcuts: Efficient navigation and operation using keyboard shortcuts
- File Operations: Import and export notes
- Categorization: Organize notes by categories
- Responsive Design: UI adapts to different window sizes
- Java Runtime Environment (JRE) 8 or higher
- Windows, macOS, or Linux operating system
-
Clone this repository:
git clone https://github.com/chukjosh/NoteApp.git
-
Navigate to the project directory:
cd NoteApp
-
Compile the Java files:
javac src/*.java
-
Create a manifest file:
echo "Main-Class: src.NoteApp" > manifest.txt
-
Create a JAR file:
jar cvfm NoteApp.jar manifest.txt src/*.class
-
Run the application:
java -jar NoteApp.jar
- Click the "New" button or press
Ctrl+N
- Enter a title for your note
- Type your note content in the main text area
- Click "Save" or press
Ctrl+S
to save your note
- Select a note from the list
- Modify the content in the main text area
- Click "Save" or press
Ctrl+S
to save your changes
- Select a note from the list
- Click the "Delete" button or press
Ctrl+D
- Type your search query in the search field
- The note list will automatically filter to show matching notes
Ctrl+N
: Create a new noteCtrl+S
: Save the current noteCtrl+D
: Delete the selected noteCtrl+E
: Edit the selected noteCtrl+F
: Focus the search fieldCtrl+Q
: Exit the applicationCtrl+Plus
: Zoom inCtrl+Minus
: Zoom out
The application stores all notes in the notes/
directory at the root of the project. Each note is saved as an individual text file with the following characteristics:
-
File Naming: Each note file is named according to its title with a
.txt
extension (e.g.,My First Note.txt
) -
File Format: Note files are plain text files with a simple structure:
- The first line contains metadata in the format:
creationTimestamp|lastModifiedTimestamp
- The remaining lines contain the actual note content
- The first line contains metadata in the format:
-
File Operations:
- When a new note is created, a corresponding file is generated in the
notes/
directory - When a note is edited, its file is updated with the new content and modification timestamp
- When a note is deleted, its file is removed from the
notes/
directory
- When a new note is created, a corresponding file is generated in the
-
Loading Notes: On application startup, the app scans the
notes/
directory and loads all note files into memory -
Note Persistence: All changes to notes (creation, edits, deletion) are immediately synchronized with the corresponding files on disk
-
File Handling: The application handles special characters in filenames and ensures proper file encoding for compatibility across different systems
src/
- Contains the Java source filesNoteApp.java
- Main application class with UI and functionalityNote.java
- Data model for notes
notes/
- Directory where notes are stored as text files
The application features a modern UI with customizable themes. You can toggle between light and dark mode through the settings menu.
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- Java Swing for the GUI components
- Inspired by modern note-taking applications